2010-12-14 2 views
13

명령 줄에서 Java 응용 프로그램을 실행 중입니다. 명령 줄 인수를 지정하여 현재 실행중인 디렉터리를 응용 프로그램이 실제로 실행될 위치가 아닌 다른 위치로 설정할 수 있습니까?java 명령 줄에서 현재 실행중인 디렉토리를 설정할 수 있습니까?

+0

복제본이지만 도움이 될지 모르겠다. http://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java – khachik

+0

예, 도움이 될 수 있습니다. 새 파일 (상위, 경로)이 작동 할 수 있습니다. 나는 그것을 시험해야 할 것이다. 왜 내가이 질문을 올린 이유는 내 응용 프로그램이로드하는 DLL에서 프로파일 러를 사용하려고하는 것입니다. 근본적으로 java.exe를 프로파일 링해야하므로 현재 작업 디렉토리는 jdk 폴더로 설정되고 내 응용 프로그램에서 내 상대 경로를 버립니다. – user538442

+0

프로파일 러에는 시작 디렉토리를 설정하는 옵션이 있어야합니다. 또는 BAT 파일을 작성하고 프로파일 러에게이를 실행하도록 지시 할 수 있습니까? –

답변

0

현재 디렉토리를 변경하려면 Java 코드에서 JNI를 사용하고 원시 API를 호출해야합니다.

#!/bin/sh 
cd <your dir> 
java <some arguments> 

의 JNI-솔루션 모두에 영향을 줄 수 있습니다 : 가능한 모든 내가 오히려 자바 응용 프로그램을 실행하는 스크립트를 사용하여 스크립트의 디렉토리를 설정하려는 경우 예를 들어, Windows 용 당신은 SetCurrentDirectory

+0

JNI를 사용 중이므로 가능한 해결책 일 수 있습니다. – user538442

+0

이렇게하면 코드를 완전히 이식 할 수 없게됩니다. –

3

을 사용 응용 프로그램에서 상대 경로의 종류; 예를 들어 넣은 클래스 패스.

33

JVM의 작업 디렉토리를 설정하는 데 사용할 수있는 JVM 인수 -Duser.dir이 있습니다.

0

이 게시물을 발견하고 내 문제를 해결하는 데 도움이되었습니다. IntelliJ에 관해 특정의 것을 공유하고 싶었지만 누군가 다른 사람을 넘어 뜨릴 수 있습니다.

내가 -Duser.dir 플래그가 사용되며, 또한 작업 디렉토리 텍스트 필드에서 작성되는 경우 아래의 사진을 게시했다.

"Working Directory" field has lower precedence than the -Duser.dir flag.

을이 상황에서 작업 디렉터리로 설정됩니다 "2ndTry"보다는 "JarLearning".

관련 문제