2016-07-08 3 views
2

지금은 파이썬 스크립트를 실행할 수 있도록 절대 파일 경로가 내 Java 프로그램에 하드 코드되어 있습니다. 그러나 내 프로그램이 회사의 플랫폼에 배포되면이 파일 경로가 더 이상 올바르지 않게됩니다. 스크립트는 호출하는 클래스의 동일한 디렉토리에 있으며이 디렉토리 구조는 변경되지 않습니다. 동일한 디렉토리에있는 스크립트를 기반으로 실행하는 방법이 있습니까?하드 코드 된 파일 경로없이 Java에서 Python 스크립트를 어떻게 실행합니까?

+0

'org.python.util.PythonInterpreter'를 사용하고 있습니까? –

+0

왜 절대 경로가 필요합니까? 클래스 경로에 있다면 앱을 가져온 곳에서 작동하는 "./something/script"로 호출하는 방법이 있어야합니다. –

+0

@CoderinoJavarino scriptPath.exists()는 상대 경로에 대해 false를 반환하고 절대 경로에 대해서만 true를 반환합니다. – SVN600

답변

2

당신은 자바 클래스에서 실행 된 파일의 경로를 반환하려면이 옵션을 사용할 수 있습니다 : 당신은 다음 현재 디렉토리를로드하고 파이썬 스크립트를 실행하려면이 path 객체를 사용할 수 있습니다

final File path = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); 

.

0

@Confiqure가 제안한 것을 시도한 후에, 경로가 내 프로그램의 디렉토리 구조에 너무 일고있는 것으로 나타났습니다. 대신에 나는 시도했다 : 나는 내 자신의 응용 프로그램에 상대적인 경로를 변경하지 않을 것이라는 점을 알고, 상대 경로를 하드 코딩 자신의

String path = new File("").getAbsolutePath + "/my/path/to/script"; 

new File("").getAbsolutePath 내 응용 프로그램과에서 경로를 반환했습니다.

관련 문제