利用.bat文件运行java程序出现异常

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:46:33
.bat文件下的内容:
set classpath=D:\Program_Files\Java\jdk1.5.0_14\lib\
java KAStu

(bat文件放在了与KAStu.class相同的文件夹下)
出现的异常信息:exception in thread "main" java.lang.Noclassdefounderror:

set classpath=.;D:\Program_Files\Java\jdk1.5.0_14\lib\dt.jar;D:\Program_Files\Java\jdk1.5.0_14\lib\tools.jar

1:classpath要包含当前目录。
2:classpath要指到jar包。

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
就是类路径(classpath)问题啦。实际上,类路径是在编译过程就
涉及的Java中的概念。classpath就是指明去哪里找用到的类,就这么简单.
文件中的共有类必须和文件名相同,看看你源代码中有没有定义包,就是开头的package,有的话要这样运行,比如你的文件在E:\java\JDBC.java,如果定义包“package myjdbc;”,那么生成后的class文件就在E:\java\myjdbc\JDBC.class。

最可能的就是环境变量配置问题,你将set classpath=D:\Program_Files\Java\jdk1.5.0_14\lib\ 改为set classpath=.;D:\Program_Files\Java\jdk1.5.0_14\jar\lib\试试
另外 如果在别的地方可以运行的话,最好是set classpath=%classpath%

可能你没有理解包的概念。对于一个包进程级的访问一般是从包的“外部”访问的。这时,包是一个整体,而你进入了的内部调用某个类是不对的。
举例说吧,你的类KAStu.class如果在包a里,那么编译后它也会在文件夹下。在运行这个包时,应该在a的上级文件夹里运行这个类。所以你的.bat这样写应该就对了,假设KAStu.class在a里,在a的父目录里建立这个.bat,然后内容为java a.KAStu 就行。