2012-01-05 4 views
2

커맨드 라인에서 인수를 얻는 jar 파일을 가지고 있고 환경 변수를 포함하는 매개 변수를 제공하려고합니다. 뭔가 아래와 같이 : 환경 변수를 인수로 사용하기

java -jar MyDev.jar -f %PROJECT_HOME%/src/test 

그러나 위의 경우 프로그램에서

%PROJECT_HOME%라는 이름의 디렉토리를 생성하지만 나는 시스템의 PROJECT_HOME 값이 /home/jack 경로라고합니다. 그리고 프로그램은 /home/jack/src/test이 아니고 %PROJECT_HOME%/src/test 경로를 따라야합니다.

어떻게하면됩니까?

+0

Windows 또는 Unix – RanRag

+0

명령 줄 인수를 확장하는 방법을 결정하기위한 전적으로 셸까지입니다. 자바는 더 이상 구문 분석 할 수 있지만 DOS 셸이 예상대로 작동하지 않는 이유를 찾는 것이 좋습니다. –

+0

% System.out에 입력 인수 만 출력하는 간단한 한 줄 테스트 클래스에 % USERPROFILE %를 전달하려고 시도했습니다. 제 경우에는, 그 변수가 제 집집으로 정확하게 번역되었습니다. 자바 프로그램을 시작하기 전에'echo % PROJECT_HOME %'을 실행하여 변수를 정의했는지 확인 했습니까? – Alderath

답변

4

Unix 쉘에서 실행하고 있습니까? 그렇다면, 당신은 단지 원하는 의심 :

java -jar MyDev.jar -f ${PROJECT_HOME}/src/test 

환경 변수를 지정하는 윈도우 방법입니다 % 사용 - 어떤 /home/jack의 홈 디렉토리에 맞게 표시되지 않습니다 ...

+0

Windows에서 실행 중이므로 예를 들어/home/jack을주었습니다. – emin

+0

@emin : 시작하는 방법을 명시 적으로 밝히고 더 많은 대표적인 예제를 사용하면 도움이 될 것입니다. 명령 프롬프트에서이 명령을 실행하거나 다른 방법으로 시작하고 있습니까? –

2

담당하는 구성 요소 환경 변수 대체는 쉘/명령 행 처리기 (Windows의 경우 cmd.exe)입니다.

public static void main(String[] args) { 
    System.out.println(args[0]); 
} 

이클립스 내에서 실행 인수로 "% 경로 %"를 통과 %PATH%를 출력 :

나는 다음과 같은 main 방법을 썼다. 명령 행에서 실행하면 실제 경로 환경 변수가 인쇄됩니다.

System.getenv()을 사용하여 Java 코드에서 환경 변수에 액세스 할 수 있습니다. 예를 들어, System.out.println(System.getenv("PATH"))은 Eclipse와 명령 행에서 실제 경로 변수를 모두 인쇄합니다.

0

변수 PROJECT_HOME이 잘못 정의되었거나 철자가 틀린 이름 일 수 있습니다. 따라서 변수가 이미 정의되어 있는지 확인하기 위해 java 프로그램을 시작하기 전에 바로 수행하지 않으면 echo %PROJECT_HOME%을 수행해야합니다.

관련 문제