我有一个批处理文件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显示结果。
doPost()
二,学会的缺陷Runtime#exec()在这篇文章。您的问题是您不检查结果也不检查错误流(因此永远不知道程序是否成功执行),并且期望它以某种方式与您的编码同步运行(而实际上它在单独的线程中运行/处理)。您基本上是在“一劳永逸”,代码基本上不会以任何方式跟踪程序的执行/终止。
Runtime#exec()
顺便说一下,这个问题与JSP无关。在普通的Java类中,您将面临完全相同的问题。