2012-03-08 5 views
1

저는 윈도우즈에서 작성한 자바 프로그램에서 bash 스크립트를 실행하려고합니다. Runtime 객체를 사용하여 프로세스를 작동시키고 프로그램을 컴파일하고 예외없이 실행하지만 디렉토리를 만드는 간단한 테스트 스크립트가 실행되지 않습니다. 여기 자바에서 cygwin 스크립트를 실행하는 방법

는 내가 지금까지있어 무엇 :

String cmmd[] = new String[3]; 
    cmmd[0] = "C:\\cygwin\\bin\\bash.exe"; 
    cmmd[1] = "cd C:/Users/pro-services/Desktop/projects/github/cygwin"; 
    cmmd[2] = "bash TEST.sh"; 

    Runtime rt= Runtime.getRuntime(); 
    Process proc = rt.exec(cmmd); 

이 기본적으로 내가 그물 주위 포럼에서 발견 한 여러 가지의 혼합이다,하지만 난 정말 무엇을 이해하지 못하는 것 같아요 Process 클래스에 대해 (그리고 나는 Runtime 클래스에 대한 기본적인 생각 만 가지고있다.)

나는이 발견, 내가 갈한다고 생각 어디에서 내 자신의 물건을 연결 :

여기
Runtime.getRuntime().exec(new String[]{"C:\\cygwin\\bin\\bash.exe", 
                "-c", "c:\\cygwin\\bin\\run.exe -p /bin bash C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh"}, 
             new String[]{"PATH=/cygdrive/c/cygwin/bin"}); 

나는 "-c""-p" 문자열이 무엇을 나타내는 지 모르겠지만, 난 그냥 함께 갔다. 처음에는 Runtime/Process 객체가 실행되도록하는 순차적 명령을 플러그인 할 수있는 것처럼 보였습니다. 본질적으로 스크립트를 실행하는 "스크립트"를 작성했습니다. 하지만 이제는 더 많은 것이있는 것 같습니다 ...

저는이 시점에서 어둠 속에서 촬영 중이고 문서를 이해하려고 노력했지만 잃어 버렸습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다)))

답변

0

테스트되지 않은,하지만 난 생각 :

cmmd[0] = "C:/cygwin/bin/bash.exe"; 
cmmd[1] = "-c"; 
cmmd[2] = "cd /cygdrive/c/Users/pro-services/Desktop/projects/github/cygwin && bash TEST.sh"; 
+0

하고 단지'런타임 RT = Runtime.getRuntime()를 실행; \t \t 프로세스 proc = rt.exec (cmmd);'? 신비하게 나는 아직 결과가 없다. 고마워,이게 더 나아 보인다. – blaughli

관련 문제