有關我的項目的一些原因,我需要一個Java EE服務器上運行此命令「的gcc -o file.c的file.exe」,我用這個java代碼在Java EE服務器Exec的運行
try {
Runtime runtime = Runtime.getRuntime();
String[] cmd={"cmd.exe","/C gcc " + a +".c" + " -o "+b};
Process p = runtime.exec(cmd,null,null);
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line = null;
try {
while((line = reader.readLine()) != null) {
System.out.println(line);
}
} finally {
reader.close();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
catch (Exception e) {System.out.println("erreur d'execution"); }
}
該命令在cmd上完美工作,此代碼在Java應用程序中完美工作,並獲得我的輸出(.exe)和我的錯誤。
一旦我嘗試稍後(使用JBoss服務器)將其部署到服務器上,則什麼也沒有發生。我稍後嘗試從服務器執行cmd,也沒有發生任何事情。所以這是一種Java EE服務器問題。
我該如何解決?是否有其他服務器,如Tomcat可以執行此代碼?
什麼是你的服務器的操作系統?執行Tomcat/JBoss或其他Web應用程序服務器的用戶是否有足夠的權限執行其他程序? – 2013-04-20 12:50:55
更改'System.out.println(「erreur d'execution」);'更有用的'e.printStackTrace(); System.out.println(「erreur d'execution」);' – 2013-04-20 12:55:47
我使用windows7和eclipse juno來運行我的服務器,我的用戶是一個使用JNDI連接服務器的java應用程序,起初我使用EJB3代碼但看起來EJB並沒有處理文件系統和IO.File的使用,因此我在切換到spring時處理它,所以我留下了使用此代碼在服務器上執行cmd的問題!那將是什麼條件? – Hobbit1919 2013-04-20 13:01:08