2011-08-31 2 views
0

Java 프로그램 내에서 실행 파일 및 perl 스크립트를 실행하려고합니다. 나는 이것과 비슷한 많은 주제를 발견했지만, 대부분은 창을 참조한다. 나는 자바가 플랫폼 독립적이며 어쨌든 작동해야한다고는하지만 그렇지 않다는 것을 알고있다. 내가 이미 시도한 솔루션은 Java Runtime과 exec 메소드를 기반으로합니다. 그것은 창문에 잘 작동하지만 이후 리눅스에 내 프로그램을 포팅하고있어 적응하기 위해 필요합니다. 내가 말했듯이 컴파일 된 실행 파일을 실행해야하고 C++로 작성되었지만 작동하는 것처럼 보이지만 종료 값 1로 실행을 마칩니다. 의미는 모르지만 Windows에서는 0으로 종료합니다. 이것이 리눅스에서도 마찬가지입니다 (?!?!). 반면에 펄 스크립트는 전혀 시작되지 않습니다. 필자는 "perl script.pl"명령을 사용하고 255라는 값으로 종료합니다. 말할 것도없이, 그것은 예상했던대로 작동하지 않습니다.Linux의 Java 파일에서 실행 파일을 어떻게 실행합니까?

누구나이 파일을 실행할 다른 방법을 알고 있습니까? 아니면 내 구현에 문제가 있습니까? 당신이 그것을보고 싶을 경우 여기를

코드입니다 : 이 내가이 변경 컴파일 된 파일의 펄 스크립트

public static void main(String[] args){ 
    System.out.println("Starting"); 
    try{ 
     String[] cmd = {"perl", "cloc-1.53.pl"}; 
     Process pr = Runtime.getRuntime().exec(cmd); 
     BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); 

     String line=null; 

     while((line=input.readLine()) != null) { 
      System.out.println(line); 
     } 

     int exitVal = pr.waitFor(); 
     System.out.println("Exit code: " + exitVal); 
    } catch (Throwable t){ 
     t.printStackTrace(); 
    } 
} 

의 하나입니다 함께

String[] cmd = {"perl", "cloc-1.53.pl"}; 

를 :

String cmd = "./UCC"; 

답변