2008-12-17 11 views
31

Durante el desarrollo (y para la depuración) es muy útil ejecutar una clase Java 'public static void main (String [] argv) método directamente desde dentro de Eclipse (usando el Run As Menú de contexto).Invocar el método principal de Java con los parámetros de Eclipse

¿Existe una manera similar y rápida de especificar parámetros de línea de comandos para la ejecución? Lo que hago ahora es ir al "Diálogo Ejecutar", hacer clic en las distintas configuraciones en la pestaña donde puedo especificar los argumentos de VM y del programa e ingresarlos allí. Demasiados pasos, además no quiero mezclar la configuración de tiempo de ejecución más permanente con los parámetros de invocación únicos. Lo que quiero en su lugar es marcar una casilla en algún lugar (o tener un elemento de menú por separado "Ejecutar como aplicación Java con línea de comando") y luego pedirle la línea de comandos todo el tiempo (con un buen historial).

+1

Como dice Uri, no creo que esto sea posible, pero sería genial. También me disgusta llenar el diálogo de ejecución. –

Respuesta

49

Esta respuesta se basa en Eclipse 3.4, pero debería funcionar en versiones anteriores de Eclipse.

Al seleccionar Ejecutar como ..., vaya a las configuraciones de ejecución.

En la pestaña Argumentos de la configuración de ejecución de Java, configure la variable $ {string_prompt} para que aparezca (puede hacer clic en las variables para obtenerla o copiarla para establecerla directamente).

Cada vez que utiliza esa configuración de ejecución (asígnele un nombre para que la tenga para más adelante), se le solicitarán los argumentos de la línea de comandos.

2

AFAIK no hay un mecanismo incorporado en Eclipse para esto.

Lo más cerca que puede obtener es crear un contenedor que le solicite estos valores e invoque el principal (codificado). A continuación, obtiene su historial de ejecución siempre que no borre los procesos finalizados. Dos variaciones sobre esto son usar JUNit, o usar inyección o parámetro para que su envoltorio siempre se conecte a la clase correcta para su main.

1

No estoy seguro de cuáles son sus usos, pero me parece conveniente que generalmente utilizo no más de varios parámetros de línea de comandos, por lo que cada uno de esos escenarios obtiene una configuración de ejecución, y solo elijo el que quiero de el historial de ejecución.

La característica que está sugiriendo parece un poco exagerada, IMO.

14

Uri está equivocado, hay una manera de agregar parámetros al método principal en Eclipse directamente, sin embargo, los parámetros no serán muy flexibles (se permiten algunos parámetros dinámicos). Esto es lo que debe hacer:

  1. Ejecute su clase una vez como está.
  2. Ir a Run -> Run configurations...
  3. En la lista izquierda, seleccione la clase de la lista bajo Java Application o escribiendo su nombre a la caja del filtro.
  4. Seleccione la pestaña Argumentos y escriba sus argumentos en el cuadro Program arguments. En caso de que no esté claro, están separados en espacios en blanco, así que "a b c" (sin comillas) significaría que pasaría los argumentos a, byc a su programa.
  5. ejecutar su clase otra vez al igual que en el paso 1.

sin embargo me recomendaría el uso de la clase JUnit/envoltura al igual que Uri ha dicho ya de esa manera se obtiene un mucho mejor control sobre los parámetros reales que al hacer esto .

+0

Creo que Thilo/Uri están hablando de una manera simple de hacer esto _sin_ involucrar profundizar en el cuadro de diálogo Ejecutar - como dice su pregunta. –

+0

Tuve que citar el argumento del nombre del archivo porque tenía espacios en él. Gracias – danny117

0

Otra idea:

Colocar todos sus parámetros en un archivo de propiedades (un parámetro = una propiedad en este archivo), luego en el método principal, cargue este archivo (usando Properties.load(*fileInputStream*)). Así que si quiere modificar un argumento, solo necesitará editar su archivo args.properties e iniciar su aplicación sin más pasos que hacer ...

Por supuesto, esto es solo para fines de desarrollo, pero puede Sé realmente útil si tienes que cambiar tus argumentos a menudo ...

Cuestiones relacionadas