나는 내가 만든 병을위한 래퍼 항아리를 만드는 중입니다. 기본 애플리케이션 업데이트 및 사용자가 유효한 사용자인지 확인하는 작업을 처리합니다. 비록 외부 항아리가 작동하는 함수를 시작할 수 없기 때문에 중요한 문제가 있습니다. 이것은 내가 지금까지 가지고있는 것입니다 :다른 자바 애플리케이션을 시작하는 자바
ProcessBuilder builder = new ProcessBuilder("java -jar ~/Documents.Java/myJar.jar");
try {
Process process = builder.start();
} catch (Exception e) {
e.printStackTrace();
}
그러나, 나는 단지 파일을 찾을 수없는 예외를 얻고 있습니다.
java.io.IOException: Cannot run program "java -jar ~/Documents/Java/myJar.jar": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at com.mycompany.DHSLauncher.Launcher.lambda$4(Launcher.java:109)
at java.util.Optional.ifPresent(Optional.java:159)
at com.mycompany.DHSLauncher.Launcher.showLogin(Launcher.java:102)
at com.mycompany.DHSLauncher.Launcher.start(Launcher.java:35)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 10 more
java -jar ~/Documents.Java/myJar.jar
을 복사하여 터미널에 붙여 넣으면 작동하고 jar가 실행됩니다. 나는 여기서 무슨 일이 벌어지고 있는지 전혀 모른다. 경로가 실행중인 항아리의 위치와 관련이 있다고 생각합니까?
그래, 아직 파일을 찾을 수 없습니다 예외가 발생하고 있습니다. 네가 제안한 것으로 바뀌었고 그 다음에 허가가 거부되었다. 파일을 실행 파일로 설정하는 방법을 알았지 만 다시 찾을 수없는 파일로 돌아 왔습니다. – Aaron
'user.dir'의 값이 올바른지 확인 했습니까? 경로를 올바르게 구축하고 있음을 확인 했습니까? 'ProcessBuilder'에게 넘겨주는 완전한 최종 어셈블 링 된 명령 줄을 보여주세요. –
예, 경로가 올바르게되었습니다. 나는 그것을 확인했다. – Aaron