2016-08-26 3 views
0

다른 응용 프로그램에서 업데이트 한 응용 프로그램을 만들었습니다. 업데이트 프로그램은 OSX .app에 번들로 제공되며 리소스 디렉토리의 내용을 업데이트합니다. 업데이터가 시작되면 업데이트를 찾은 다음 System.getRuntime().exec(cmd)을 실행합니다. cmd은 번들 된 JRE의 경로와 응용 프로그램의 jar의 경로입니다.OSX Java 응용 프로그램에서 jar 파일 시작

업데이트 프로그램 jar 파일을 실행하면 모든 것이 예상대로 작동합니다. 그러나 응용 프로그램을 실행할 때 업데이터가 정상적으로 시작되지만 "시작"버튼을 누르면 응용 프로그램이 시작되지 않습니다. 사실, 아무 일도 일어나지 않고 있습니다. 명령 줄 수준에는 오류가 없으며 프로세스를 만들 때 예외가 발생하지 않습니다. process.isAlive()이 true를 반환합니다.

내가 말했듯이, jar updater 파일에서 실행하면 잘 작동합니다. .app 디렉토리는 maven 플러그인 "appbundle"을 사용하여 만들었습니다. 신청서는 https://github.com/elyas145/lss-reporter입니다. 그러나 업데이트 확인을위한 비밀 파일 없이는 실행할 수 없습니다. 불행히도 온라인으로 게시 할 수 없습니다.

답변

0

매우 바보 같은 실수였습니다. 디렉토리를 지정하지 않고 exec 호출에서 열려고하는 jar 파일을 지정했습니다. 나는 전화가 리소스 폴더가 아니라 루트 디렉토리에서 만들어 졌음을 잊어 버렸다. 그래서 jar 파일을 디렉토리에 만들고 java 명령에 전달해야했습니다.

관련 문제