JAVA 找不到或無法加載主類

我的JAVA默認安裝在C:\ProgramFiles\Java\jdk1.8.0_31目錄下

系統環境變量配置爲

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_31

PATH=;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;(最前面的.;不能漏掉了,這個是告訴java在尋找類時在當前目錄下尋找


設置JAVA_HOME,CLASSPATH,PATH的目的:
一、設置JAVA_HOME:
1.爲了方便引用。比如,你JDK安裝在C:\Program Files\Java\jdk1.7.0目錄裏,則設置JAVA_HOME爲該目錄路徑, 那麼以後你要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
2.歸一原則, 當你JDK路徑被迫改變的時候, 你僅需更改JAVA_HOME的變量值即可, 否則,你就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一你沒有改全, 某個程序找不到JDK, 後果是可想而知的----系統崩潰!
3.第三方軟件會引用約定好的JAVA_HOME變量, 不然, 你將不能正常使用該軟件, 以後用JAVA久了就會知道, 要是某個軟件不能正常使用, 不妨想想是不是這個問題.

二、設置CLASSPATH:
這是一個很有趣,當然也比較折磨初學者的問題, 這個變量設置的目的是爲了程序能找到相應的".class"文件, 不妨舉個例子: 你編譯一個JAVA程序---A.java, 會得到一個A.class的類文件,你在當前目錄下執行java A, 將會得到相應的結果(前提是你已經設置CLASSPATH爲"."). 現在, 你把A.class移到別的目錄下(例如:"e:\"), 執行java A, 將會有NoClassDefFindError的異常,原因就是找不到.class文件, 現在你把CLASSPATH增加爲:".;e:\"再在任何目錄下運行java A, 看看會有什麼結果~~:)~~~, 一切正常, java命令通過CLASSPATH找到了.class文件!

三、設置PATH:
道理很簡單, 你想在任何時候都使用%JAVA_HOME%\bin\java 等來執行java命令嗎, 當然不會, 於是, 你可以選擇把%JAVA_HOME%\bin添加到PATH路徑下, 這樣, 我們在任何路徑下就可以僅用java來執行命令了.(當你在命令提示符窗口輸入你個代碼時,操作系統會在當前目錄和PATH變量目錄裏查找相應的應用程序,並且執行.)


如果環境變量設置正確,還是提示找不到或無法加載主類,則還有兩個坑需要趟過去:

1.使用cmd命令行的javac將.java文件編譯爲.class文件時一定要在當前目錄執行。這個要在cmd裏將目錄cd到當前目錄(比如我的.java文件放在D:\javaCode目錄,那麼在cmd裏就要cd到這個目錄);

2.使用java命令執行的時候後面不要帶上.class。比如java HelloWorld就可以,java HelloWorld.class就提示找不到或無法加載主類。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章