[英]unable to start .bat file from JSP
我有一个批处理文件runthis.bat
目录> dir.txt
如果我双击此文件,则将创建一个名为dir.txt的文本文件。
现在,我必须使用JSP运行此批处理文件。
<%
Runtime run =Runtime.getRuntime();
run.exec("C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/try/runthis.bat");
out.println("SUCCESS");
%>
我在网页上获得成功的输出,但此批处理文件未运行。
可能是什么问题?
首先,JSP是错误的地方。 在真正的Java类中进行操作。 从Servlet开始。 有一个带有按钮的表单,该表单提交给Servlet。 将此代码放在doPost()
方法中。 让servlet将结果放入请求范围,并将请求转发到JSP。 让JSP显示结果。
第二,在本文中了解Runtime#exec()
的陷阱。 您的问题是您没有检查结果或错误流(因此永远不知道程序是否成功执行),并且期望它以某种方式与您的编码同步运行(而实际上却在单独的线程中运行/处理)。 您基本上是在“一劳永逸”,代码基本上不会以任何方式跟踪程序的执行/终止。
顺便说一下,这个问题与JSP无关。 在普通的Java类中,您将面临完全相同的问题。
尝试执行:
cmd /c your.bat
那是:
run.exec("cmd /c C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/try/runthis.bat");
编辑:
我建议您在路径内的空格时要小心。 如果您转义了它们或用引号(“”)括住了整个路径,那就太好了。
我猜你应该在路径中使用退格键:
run.exec("C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\try\\runthis.bat");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.