使用java Runtime()或Process Builder执行或运行应用程序

时间:2015-07-03 07:39:41

标签: java tomcat servlets runtime processbuilder

我正在尝试从java servlet执行应用程序。当我在eclipse集成tomcat上运行它时工作正常。当我试图通过将.war文件部署到webapps中而在os集成tomcat服务器上执行相同操作时,它无法正常工作。它也没有遇到任何错误。即使我检查了日志,也没有错误,只有通常的tomcat访问日志。有没有其他方法可以执行firefox, chrome, gedit等应用程序

注意:像ls, chmod, mkdir这样的基本bash命令正在运行。但是,在调用gedit, firefox之类的应用时,它无效。

使用的陈述: * Runtime.getRuntime().exec(command)   使用firefox调用偶数/bin/bash -c。没有结果。 * ProcessBuilder

任何替代方案??

1 个答案:

答案 0 :(得分:1)

ProcessBuilder接受多个参数,您应该拆分命令参数。因此,如果您要执行ls -sl,则必须致电

 new ProcessBuilder("ls", "-sl");

另一个例子:

 new ProcessBuilder("pg_dump", "database", '-u', 'username', '--clean');

否则ProcessBuilder可能无法识别该命令。另外别忘了使用

processBuilder.redirectErrorStream(true);   // equivalent of 2>&1

将stderr重定向到stdout。