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