Maven:如何从命令行运行.java文件传递参数

2022-08-31 10:23:31

我有以下问题。我想从命令行运行文件。 接受参数。如何从命令行执行此操作?mvnMain.javaMain.java

我试图找到一个例子,但我没有成功。有人可以帮我举个例子吗?

我看了看这里,但不太明白我应该怎么做。

另外,如何从与 Main.java 文件夹不同的文件夹执行该命令?

例如,位于 中。我应该放什么Main.javamy/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

添加外壳脚本,例如 使它更容易:run.sh

#!/usr/bin/env bash
export JAVA_PROGRAM_ARGS=`echo "$@"`
mvn exec:java -Dexec.mainClass="test.Main" -Dexec.args="$JAVA_PROGRAM_ARGS"

然后,您可以执行:

./run.sh arg1 arg2 arg3