2012-03-07 5 views
3

Cygwin의 gcc 또는 gcc-4를 호출하여 Java에서 C 파일을 컴파일하려고하는데 아무 것도 시도하지 않습니다. 제가 시도한 것은 다음과 같은 코드 라인입니다 :Java에서 Cygwin C 컴파일러 GCC를 호출하려면 어떻게해야합니까?

theProcess = Runtime.getRuntime().exec("cmd /c C:/cygwin/bin/gcc-4.exe -o C:/work/source.exe C:/work/source.c"); 

그러나 아무것도 출력하지 않았습니다.

+1

반환되는 코드는 무엇입니까? 오류가있는 스트림과 스트림을 읽으려고 했습니까? –

+0

왜 cmd입니까? 왜 gcc.exe를 직접 실행하지 않습니까? – bmargulies

+1

cmd.exe를 호출 할 필요가 없습니다. Cygwin 프로그램은 'Windows 호환'이므로 직접 호출 할 수 있습니다. – anakkin

답변

1

이 내용을 완전히 이해하려면 theProcess으로 무엇을하고 있는지 자세히 알아야합니다. 그러나 단순히 "exec"를 호출하면 기대하는 바가 있다면 Std 출력에 아무 것도 출력하지 않습니다. 경우에 따라 출력이 소비되지 않으면 명령이 전혀 실행되지 않습니다. 즉, 생성 된 Process 개체의 출력을 읽어야합니다. 다음과 같이 시도하십시오 :

BufferedReader br = new BufferedReader (new InputStreamReader (theProcess.getInputStream()); 
String line = br.readLine(); 
while (line != null) { 
    System.out.println(line); 
    line = br.readLine(); 
} 

이렇게하면 프로세스의 표준 출력의 출력이 JVM의 표준 출력으로 인쇄됩니다.

관련 문제