[java] 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"



답변

다음을 실행할 수 있습니다 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'"


답변

으로 실행하는 것 외에도 다음을 사용하여 실행할 mvn exec:java수도 있습니다.mvn exec:exec

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


답변

예를 들어 쉘 스크립트를 추가하면 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


답변