: 모든 것이 잘되면
이
public class Main {
public static void main(String[] args) {
System.out.println("ok");
}
}
이, 그냥 작동 : 여기
public class Laj {
private static void printLines(String name, InputStream ins) throws Exception {
String line = null;
BufferedReader in = new BufferedReader(
new InputStreamReader(ins));
while ((line = in.readLine()) != null) {
System.out.println(name + " " + line);
}
}
private static void runProcess(String command) throws Exception {
Process pro = Runtime.getRuntime().exec(command);
printLines(command + " stdout:", pro.getInputStream());
printLines(command + " stderr:", pro.getErrorStream());
pro.waitFor();
System.out.println(command + " exitValue() " + pro.exitValue());
}
public static void main(String[] args) {
try {
runProcess("javac Main.java");
runProcess("java Main");
} catch (Exception e) {
e.printStackTrace();
}
}
}
는 Main.java입니다
[email protected]:~/tmp$ java Laj
javac Main.java exitValue() 0
java Main stdout: ok
java Main exitValue() 0
예를 들어 Main.java에 오류가있는 경우 :
[email protected]:~/tmp$ java Laj
javac Main.java stderr: Main.java:3: package Systems does not exist
javac Main.java stderr: Systems.out.println("ok");
javac Main.java stderr: ^
javac Main.java stderr: 1 error
javac Main.java exitValue() 1
java Main stdout: ok
java Main exitValue() 0
이전에 컴파일 된 Main.class가 여전히 있기 때문에 "ok"가 계속 표시되지만 프로세스가 실행 중일 때 정확히 어떤 현상이 발생하는지 알 수 있습니다.
당신이 http://docs.codehaus.org/display 찾고있는 것 같은데 .. 성공적 여부를 완료 컴파일 프로세스를 확인하기 위해 라즈 클래스의 주요 기능에 조건을 추가 한/자니노/집;). – phihag
@phihag 그냥 자바 코드 예입니다. 나는 c/C++ 코드와 오타로 일반화 할 것이다 –
'Process.getOutputStream'을 사용하지 않겠습니까? –