2013-01-13 2 views
0

가능한 중복 명령 :
Execute another jar in a java programCMD는 다른 OS 시스템에서

내가 자바 문서에서 실행하는 프로그램을 만드는 중이라서, 그리고 자바 문서를 실행합니다. 내가 사용하고 창문과 잘 나를 위해

Process pr = Runtime.getRuntime().exec(
    "cmd /c start cmd.exe /c \"cd %appdata%\\.gknl && java -jar launcher.jar\"" 
); 

작동하지만 리눅스, 맥 등 실 거예요 작업,

누군가가 나 다른 OS 시스템의 문제를 해결하는 데 도움이 수 있습니까?

참고 :

Process pr = Runtime.getRuntime().exec(new String[]{"csh","-c","cd " + appdata +"\.gknl && java -jar launcher.jar"); 
+3

그런 프로그램을 실행하지 말고,'ProcessBuilder'를 사용하십시오. – fge

답변

0

리눅스 있습니다. 이것은 대부분의 시스템에서 bash, zsh 또는 csh로 링크됩니다.

나는 sh가 Mac에도 있다고 확신하지만, Raspberry Pi를 연결 해제하고 모든 것을 Mac Mini에 다시 넣어서 확인해야합니다.

+2

csh가 모든 Linux 시스템에 설치되어 있지 않습니다. 나는 네 앞에 4 개의 시스템을 가지고 있으며, 나는 단지 1을 가지고있다. 만약 당신이 무언가가 효과가 있다는 것을 확신하고 싶다면 sh를 사용해야한다. 그건 내 우분투, Fedoras, 그리고 내 Raspian 시스템에 있습니다. –

+0

어디서나 작업을 수행해야하는 csh를 설치합니다. –

0

리눅스/유닉스에서 당신이 쉬를 사용하려면 : 난 이미 OS를위한 체크 ...

0

cmd.exe는 Windows 셸 실행, 당신은 리눅스/맥 조개 중 하나를 사용해야합니다입니다 : launcher.jar 클래스 경로에있는 경우

ProcessBuilder pb = new ProcessBuilder(
     "sh", "-c", 
     "cd $appdata/.gknl && java -jar launcher.jar"); 
pb.start(); 

것은,에서 기본 응용 프로그램 클래스를 실행 할 수 있어야한다 그러나 Process/ProcessBuilder을 사용하지 않고 응용 프로그램을 호출하십시오.

관련 문제