我正在尝试从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
任何替代方案??
答案 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。