今天写了个调用.bat的程序时,出现了个低级的错,总结一下;前台是用JSP写,后台是写个SERVLET,
后台JAVA代码如下
--------------------------------------------------------
package com.vogoal.util;
import java.io.BufferedReader;import java.io.InputStreamReader;
public class RunBat {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("C:\\\\Program Files\\tomcat6\\webapps\\ROOT\\run.bat");
BufferedReader read = new BufferedReader(new InputStreamReader(process.getInputStream()));
String str = null;
while ((str = read.readLine()) != null) {
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
--------------------------------------------------------
前台JSP如下:
--------------------------------------------------------
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="com.vogoal.util.RunBat" %>
<html>
<head>
<title>Run bat to start testing</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
</head>
<body>
<%
RunBat.main(null);
%>
</body>
</html>
--------------------------------------------------------
之前RunBat.main(null);写成了
RunBat rb = new RunBat();
rb.main(null);
结果报错了,NoClassDefFoundError, 之后想想才知道,可能main()构造函数的原因,嘿嘿!
另外说一下,web.xml里面多个servlet配置,其实很简单,就是简单的添加就可以,例如:
<!-- This is for Upload File -->
<servlet>
<servlet-name>JspFileUpload</servlet-name>
<display-name>JspFileUpload</display-name>
<description>A test Servlet</description>
<servlet-class>classes.com.vogoal.util.JspFileUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JspFileUpload</servlet-name>
<url-pattern>/JspFileUpload</url-pattern>
</servlet-mapping>
<!-- This is for Start function -->
<servlet>
<servlet-name>RunBat</servlet-name>
<display-name>RunBat</display-name>
<description>Start Servlet</description>
<servlet-class>classes.com.vogoal.util.RunBat</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RunBat</servlet-name>
<url-pattern>/RunBat</url-pattern>
</servlet-mapping>