很多网友发Email询问一些JAVA的问题, 由于时间精力方面的原因, 我们没有太多的时间一一回复, 现在就一个普遍的,
容易犯错的问题统一回答, 未能及时及不能回复Email的朋友, 这里说声对不起了.
"Exception in thread "main"
java.lang.NoClassDefFoundError: ….."
这个问题问的最多, 也是容易出现. 可能的原因需要具体分析, 但最主要的是以下几种:
a.类路径设置不对,
b.类名的大小写不对
c.所引用的包不全
解决方法:检查类路径环境变量(PATHCLASS)的设置或者用命令行加类路径启动的方式, 这里我们给出一个批处理文件,
是Windows平台下的格式, 如果是类UNIX操作系统, 请自己转换成所用的Shell语言格式.
run_java.bat
----------------------
@ECHO OFF
::----------------------------------------------------------------------
:: JAVA APPLICATION 启动脚本
:: 请正确设置JAVA_HOME及LIB_HOME路径
:: START_CLASS中设置启动类的类名及所在的包
::----------------------------------------------------------------------
SET JAVA_HOME=D:\DEVLOPE_TOOLS\Jdk1.4.1
SET LIB_HOME=D:\DEVLOPE_TOOLS\Jdk1.4.1\Lib
SET APP_HOME=.
SET START_CLASS = HelloJava
SET JAVA_EXE=%JAVA_HOME%\bin\javaw.exe
SET ALL_LIB=%LIB_HOME%\lib1.jar;%LIB_HOME%\lib2.jar
start %JAVA_EXE% -classpath "%ALL_LIB%;%APP_HOME%"
%START_CLASS%
exit
注意:
1. Start是Windows自带的启动DOS的批处理文件, 这里引用了这个文件是为了运行的程序的时候不一直出现DOS窗体而设置的.
建议调试的时候去掉.
2. Javaw.exe 是用Windows方式启动Application, 这样一些异常就不能及时看见, 除非你使用了Java控制台.
建议调试的时候改为java.exe.
3. HelloJava 这里一定要主意自己启动类类名的大小写.