簡體   English   中英

Maven:如何從傳遞 arguments 的命令行運行 a.java 文件

[英]Maven: How to run a .java file from command line passing arguments

我有以下問題。 我想從命令行為Main.java文件運行mvn 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"

您可以運行: 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"

對於以空格分隔的參數,可以在引號內使用'argument separated with space'進行分組。

mvn exec:java -Dexec.mainClass=test.Main -Dexec.args="'argument separated with space' 'another one'"

除了使用mvn exec:java運行它之外,您還可以使用mvn exec:exec運行它

mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath your.package.MainClass"

添加一個shell腳本(例如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

看看maven-exec-plugin 如果使用得當,您可以編譯java類,然后在類路徑上使用編譯后的類執行java。 要啟動,您只需使用即可

mvn exec:exec

這種方法是半行命令,half.pom 文件。 你可以把你的參數放在<build> </build>標簽內的插件中,像這樣

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <mainClass>%classpath your.package.MainClass</mainClass>
        <arguments>
            <argument>your_arg</argument>
        </arguments>
    </configuration>
</plugin>

現在你的 arg 在 pom 文件中。 然后只需在命令行中執行它

mvn clean compile exec:java

你可以放很多參數:

       <arguments>
            <argument>your_arg1</argument>
            <argument>your_arg2</argument>
            <argument>your_arg3</argument>
        </arguments>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM