【发布时间】:2012-05-28 20:09:03
【问题描述】:
我想用 java ee / servlets 运行一个 bash 脚本。 我希望它嵌入到 web 应用程序中,在 linux 操作系统中使用 tomcat 7。
【问题讨论】:
-
来吧靴子,开始走路。 (也就是说,告诉我们您尝试了什么,以及您收到了什么样的错误消息)。祝你好运。
标签: bash jakarta-ee tomcat web-applications root
我想用 java ee / servlets 运行一个 bash 脚本。 我希望它嵌入到 web 应用程序中,在 linux 操作系统中使用 tomcat 7。
【问题讨论】:
标签: bash jakarta-ee tomcat web-applications root
应用部署后获取文件路径:
String scriptPath = getServletContext().getRealPath("/script.sh");
使用 ProcessBuilder 类运行脚本:
new ProcessBuilder("/bin/sh", scriptPath).start();
请注意,如果您的 servlet 容器未提取 war 文件的内容,则第 2 步可能会失败。在这种情况下,您必须将脚本作为可用资源放在类路径中,将其内容复制到临时文件中,然后在那里运行脚本。
【讨论】:
ProcessBuilder 创建的Process 上调用getInputStream() 来跟踪脚本的输出。
您必须搜索如何在 Tomcat 上启用和使用 CGI。
CGI(通用网关接口)定义了 Web 服务器与外部内容生成程序(通常称为 CGI 程序或 CGI 脚本)交互的方式。
【讨论】: