NoClassDefFoundError,问题解决

本文介绍了一个使用Java调用BAT批处理文件的例子,并详细展示了如何通过JSP页面触发后台SERVLET来执行该操作。同时,文章还讨论了在实现过程中遇到的NoClassDefFoundError错误及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值