如果不使用IDE,對于初學(xué)者來說經(jīng)常會(huì)出現(xiàn) Exception in thread "main" java.lang.NoClassDefFoundError錯(cuò)誤。
一般是以下幾個(gè)原因。
建議:在你的硬盤上建立一個(gè)獨(dú)立的存放代碼的文件,比如D :\code,設(shè)置CLASSPATH指向這個(gè)文件夾;在創(chuàng)建一個(gè)專門存放類庫(jar)文件夾,CLASSPAHT也指向這個(gè)文件夾,以后當(dāng)你添加新的Jar包,例如JDBC驅(qū)動(dòng)的時(shí)候,直接復(fù)制到這個(gè)文件夾下就可以了。
1、你的文件名對嗎?
JAVA要求你的文件和你的類名嚴(yán)格對應(yīng)的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔細(xì)了!
2、你的程序中有main方法嗎?參數(shù)什么的對嗎?
main方法的聲明應(yīng)該是這樣子的:
public static void main(String[] args)
事實(shí)上如果你用開發(fā)工具來做的話,是不會(huì)錯(cuò)的。如果你用UltraEdit之類的來寫程序的話,就一個(gè)字不要改的照抄吧!
3、記住,javac后面跟的參數(shù)是文件名,但java 后面跟的是類名!
這是我開始學(xué)JAVA是犯的錯(cuò),java HelloWorld.class,然后就報(bào)錯(cuò)。后來才弄明白,應(yīng)該是java HelloWorld。
4、設(shè)置了classpath了嗎?
不僅是在安裝JDK時(shí)要設(shè)置的內(nèi)容,一般來說最好還要自己設(shè)置一個(gè)目錄來存放自己的類文件的。比如d:\class目錄。
設(shè)置classpath=%classpath%;d:\class
那么,現(xiàn)在將HelloWorld.class文件COPY到d:\class目錄下,再java HelloWorld應(yīng)該就OK了。
5、結(jié)合第3點(diǎn)和第4點(diǎn)
如果你的類是屬于某一個(gè)包的,比如這樣一個(gè)類sony.test.HelloWorld,那么按照我在第4點(diǎn)中說的目錄來說,就應(yīng)該將HelloWorld.class文件存放到d:\class\sony\test\目錄下。
執(zhí)行的時(shí)候應(yīng)該參考第3點(diǎn)中說的,按類名執(zhí)行:java sony.test.HelloWorld。