Maven: Как запустить файл .java из командной строки, передавая аргументы
У меня есть следующая проблема. Я хотел бы запустить mvn
из командной строки для файла Main.java
. Main.java
принимает параметр. Как это сделать из командной строки?
Я попытался найти пример, но мне не удалось. Может ли кто-нибудь помочь мне, давая мне пример этого?
Я посмотрел здесь, но не совсем понял, что я должен делать.
Кроме того, , как выполнить эту команду из другой папки, кроме папки Main.java?
например, Main.java
находится в my/java/program/Main.java
.
Что мне следует добавить в
mvn exec:java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"
Ответы
Ответ 1
Вы можете запустить: mvn exec:exec -Dexec.args="arg1"
.
Это передаст аргумент arg1 вашей программе.
Вы должны указать полный класс основного класса, например Main.java, который находится в тестовом пакете, потребуется
mvn exec:java -Dexec.mainClass=test.Main
Используя параметр -f
, как описано здесь, вы также можете запустить его из других каталогов.
mvn exec:java -Dexec.mainClass=test.Main -f folder/pom.xm
Для нескольких аргументов просто отделите их пробелом, как в командной строке.
mvn exec:java -Dexec.mainClass=test.Main -Dexec.args="arg1 arg2 arg3"
Для аргументов, разделенных символом space, вы можете группировать с помощью 'argument separated with space'
внутри кавычек.
mvn exec:java -Dexec.mainClass=test.Main -Dexec.args="'argument separated with space' 'another one'"
Ответ 2
В дополнение к запуску с mvn exec:java
вы также можете запустить его с помощью mvn exec:exec
mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath your.package.MainClass"
Ответ 3
Добавление сценария оболочки, например run.sh
делает это намного проще:
#!/usr/bin/env bash
export JAVA_PROGRAM_ARGS='echo "[email protected]"'
mvn exec:java -Dexec.mainClass="test.Main" -Dexec.args="$JAVA_PROGRAM_ARGS"
Затем вы можете выполнить:
./run.sh arg1 arg2 arg3
Ответ 4
Посмотрите на maven-exec-plugin. При правильном использовании вы можете заставить его скомпилировать ваш класс java, а затем просто выполнить java с скомпилированным классом в classpath. Для запуска все, что вам нужно сделать, это использовать
mvn exec:exec