Tengo el siguiente problema. Me gustaría ejecutar mvndesde la línea de comandos para un Main.javaarchivo. Main.javaacepta un parámetro. ¿Cómo hago eso desde la línea de comandos?
Intenté encontrar un ejemplo pero no tuve éxito. ¿Alguien podría ayudarme dándome un ejemplo de eso?
Miré aquí pero no entendí muy bien qué debía hacer.
Además, ¿cómo ejecuto ese comando desde una carpeta diferente a la carpeta Main.java?
por ejemplo, Main.javase encuentra en my/java/program/Main.java. Que debo poner en
mvn exec:java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"

Respuestas:
Usted podría funcionar:
mvn exec:exec -Dexec.args="arg1".Esto pasará el argumento arg1 a su programa.
Debe especificar la clase principal completamente calificada, por ejemplo, un Main.java que está en una prueba de paquete necesitaría
mvn exec:java -Dexec.mainClass=test.MainAl usar el
-fparámetro, como se describe aquí , también puede ejecutarlo desde otros directorios.mvn exec:java -Dexec.mainClass=test.Main -f folder/pom.xmPara varios argumentos, simplemente sepárelos con un espacio como lo haría en la línea de comandos.
mvn exec:java -Dexec.mainClass=test.Main -Dexec.args="arg1 arg2 arg3"Para los argumentos separados por a space, puede agrupar utilizando
'argument separated with space'entre comillas.mvn exec:java -Dexec.mainClass=test.Main -Dexec.args="'argument separated with space' 'another one'"fuente
Además de ejecutarlo con
mvn exec:java, también puede ejecutarlo conmvn exec:execmvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath your.package.MainClass"fuente
-Dexec.args:mvn exec:exec -Dexec.executable="java" -Dexec.args="-Xmx4g -classpath %classpath your.package.MainClass"Agregar un script de shell, por ejemplo, lo
run.shhace mucho más fácil:#!/usr/bin/env bash export JAVA_PROGRAM_ARGS=`echo "$@"` mvn exec:java -Dexec.mainClass="test.Main" -Dexec.args="$JAVA_PROGRAM_ARGS"Entonces puedes ejecutar:
fuente
$@almacena todos los argumentos en una lista de cadenas entre comillas. Si desea usarlo directamente, puede usar$*todos los argumentos como una sola cadena. ¿Intentaste esto?