有关我的项目的一些原因,我需要一个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