我想從一個Java程序內執行一個可執行文件和perl腳本。我發現了很多與此類似的主題,但大多數都涉及到Windows。我知道Java是平臺獨立的,它應該反正工作,但事實並非如此。我已經嘗試過的解決方案是基於java運行時和它的exec方法。它在Windows上工作得很好,但是因爲我在Linux上移植我的程序,所以我需要適應它。正如我所說,我需要執行一個可執行文件,我已經編譯,並用C++編寫,它看起來可以工作,但它完成執行與退出值爲1.我不知道它是什麼意思,但在窗口退出0這就是它應該如何在Linux上(?!?!)。另一方面,珍珠腳本根本不會啓動。我使用命令「perl script.pl」,它退出的值爲255.不用說,它沒有做它應該做的。如何在Linux上的java文件中執行可執行文件?
有沒有人知道另一種方式來執行這些文件?或者也許我的執行有問題?
這裏的代碼,如果你想看看它: 這是一個Perl腳本
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";