NoClassDefFoundError,问题解决

来源:互联网 发布:jsp javabean 获取数组 编辑:程序博客网 时间:2024/05/17 12:56

今天写了个调用.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>