다음과 같은 문제가 있습니다. 파일에 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