Invocar el método principal de Java con parámetros de Eclipse

Durante el desarrollo (y para la depuración) es muy útil ejecutar un método main public void main (String [] argv) de la clase Java directamente desde dentro de Eclipse (usando el menú contextual Ejecutar como).

¿Existe una manera similar y rápida de especificar los parámetros de línea de comando para la ejecución? Lo que hago ahora es ir al “Diálogo Ejecutar”, hacer clic en las diversas configuraciones en la pestaña donde puedo especificar los argumentos de VM y del progtwig e ingresarlos allí. Demasiados pasos, además de que 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 solicitar una línea de comandos (con un buen historial).

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 utilice esa configuración de ejecución (asígnele un nombre adecuado para tenerla para más adelante), se le solicitarán los argumentos de línea de comando.

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 dynamics). Esto es lo que necesita hacer:

  1. Ejecuta tu clase una vez como está.
  2. Vaya a Run -> Run configurations...
  3. En la lista de la izquierda, seleccione su clase de la lista bajo Java Application o escribiendo su nombre en el cuadro de filtro.
  4. Seleccione la pestaña Argumentos y escriba sus argumentos en Program arguments cuadro de Program arguments . En caso de que no esté claro, están separados en espacios en blanco, por lo que "abc" (sin comillas) significaría que pasaría los argumentos a, byc a su progtwig.
  5. Ejecute su clase nuevamente como en el paso 1.

Sin embargo, recomiendo usar la clase JUnit / wrapper como lo dijo Uri, ya que de esa manera se obtiene un mejor control sobre los parámetros reales que haciendo esto.

AFAIK no hay un mecanismo incorporado en Eclipse para esto.

Lo más cercano 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.

No estoy seguro de cuáles son sus usos, pero me parece conveniente que usualmente no utilizo más que 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 del Historial de ejecución.

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

Otra idea:

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

Por supuesto, esto es solo para propósitos de desarrollo, pero puede ser realmente útil si tiene que cambiar sus argumentos a menudo …

Si tiene espacios dentro de su argumento de cadena, haga lo siguiente:

Ejecutar> Ejecutar configuraciones> Aplicación Java> Argumentos> Argumentos del progtwig

  1. Adjunte su argumento de cadena con comillas
  2. Separe cada argumento por espacio o nueva línea