Maven: Как запустить файл .java из командной строки, передав аргументы

У меня следующая проблема. Я хотел бы бежатьmvn из командной строки дляMain.java файл.Main.java принимает параметр.How do I do that from command line?

Я попытался найти пример, но мне не удалось. Может ли кто-нибудь помочь мне, дав мне пример этого?

Я посмотрелВот но не совсем понял, что мне делать.

Также,how do I execute that command from a different folder than the Main.java folder?

напримерMain.java находится вmy/java/program/Main.java. What should I put in

<code>mvn exec:java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"
</code>
 phedon rousou11 апр. 2012 г., 17:10
По сути, я пытаюсь вызвать класс Java из другого класса Java. Обычно я запускаю этот класс из Eclipse. Я использую Runtime.getRuntime (). Exec (& quot; & quot;); выполнить этот класс из другой Java-программы. Но для запуска Main.class нужен mvn. (Я редактировал вопрос)
 Perception11 апр. 2012 г., 16:54
Что именно вы не поняли из связанного урока? Это довольно просто. Пожалуйста, добавьте к своему вопросу код, который вы уже пробовали.

Ответы на вопрос(3)

mvn exec:javaВы также можете запустить его сmvn exec:exec

mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath your.package.MainClass"
 28 дек. 2017 г., 13:01
Я не вижу, где это будет лучше, чем (IMO) прямой подход exec: Java
 08 июн. 2017 г., 16:57
Куда бы я положил аргумент Xmx в этом случае?
 09 июн. 2017 г., 08:26
Попробуйте положить его в-Dexec.args: mvn exec:exec -Dexec.executable="java" -Dexec.args="-Xmx4g -classpath %classpath your.package.MainClass"
Решение Вопроса

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'"
 11 апр. 2012 г., 17:45
Я добавил еще немного информации к своему первому ответу.
 11 апр. 2012 г., 18:21
Проект maven требует pom.xml, без этого файла использование maven не имеет большого смысла. Итак, может быть, вы хотите сначала создать проект Maven? Тогда все остальные решения должны работать просто отлично.
 phedon rousou11 апр. 2012 г., 18:05
Что делать, если у меня нет pom.xml. Я получаю следующую ошибку Не могу выполнить mojo: java. Требуется проект с существующим pom.xml, но сборка его не использует.
 phedon rousou11 апр. 2012 г., 17:23
да, но как он узнает, где находится файл main.java?
 phedon rousou11 апр. 2012 г., 18:27
Поскольку я использую Eclipse с плагином maven, я подумал, что он был сгенерирован автоматически, но, очевидно, я ошибся. Я посмотрю на это

Посмотрите наMaven-плагин Exec-, При правильном использовании вы можете заставить его скомпилировать ваш класс java, а затем просто выполнить java с скомпилированным классом в classpath. Для запуска все, что вам нужно сделать, это использовать

mvn exec:exec
 09 июл. 2013 г., 18:16
Когда у меня возникают проблемы с просмотром деталей, которые заставляют что-то работать, мне просто говорят "просто" делать какие-то вещи высокого уровня не помогает. Предоставленная вами команда запуска является шагом, но пример конфигурации для exec: exec будет более полным.
 09 июл. 2013 г., 18:54
@ Кри, если вы перейдете по указанной ссылке, есть множество примеров (которые поддерживаются и все остальное), которые будут гораздо более точными и полными, чем мои ответы. Вот почему я не опубликовал пример. Я приглашаю вас посетить страницу maven-exec-plugin, на которой вы найдете все, что ищете.

Ваш ответ на вопрос