2010-02-14 3 views
3
// this works 
if ("Show".equals (obj)) 
{ 
    try { 
    String command= "/usr/bin/xterm -e javac panel_1.java"; 
    Runtime rt = Runtime.getRuntime();  
    Process pr = rt.exec(command); 

    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));  
    String line = null; 
    while ((line = in.readLine()) != null) { 
     System.out.println(line); 
    } 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
} 

xterm 창을 열고 panel_1.java에서 javac를 호출하면 panel_1.java가 유효한 파일 인 경우 컴파일됩니다. xterm 창이 닫힙니다. 좋아, 나는 컴파일에서 경고 등을 가져 와서 목록이나 텍스트 영역에 넣기를 원한다. 어떤 아이디어 ???javac의 출력을 호출 프로그램에 리디렉션 할 수있는 방법

+5

왜 xterm을 시작 하시겠습니까? rt.exec을 사용하여 Java 컴파일러 자체를 시작할 수 있어야합니다.이 컴파일러는 올바른 입/출력 스트림을 제공합니다. – Kylar

답변

5

Java 6은 외부 프로세스를 실행할 필요없이 컴파일러에 API를 제공하는 javax.tools 패키지의 JavaCompiler입니다. (내가 연결된 javadoc을 읽어라!)

Here 또한 약간의 튜토리얼이다.

관련 문제