Eclipse 下找不到或無法加載主類的解決辦法


 有時候 Eclipse 會發神經,好端端的 project 就這么編譯不了了,連 Hello World 都會報“找不到或無法加載主類(Exception in thread "main" java.lang.NoClassDefFoundError:xxx)”的錯誤,我已經遇到好幾次了,以前是懶得深究就直接重建project了,但遇到次數多了必須深究下了,現總結幾種解決方案,大家根據自己的情況逐一嘗試即可。

1、是因為.java文件不在項目的src路徑內,也就是說源代碼未被eclipse編譯,字節碼不存在無法運行了,在項目名上右鍵 -> Builder Path -> Configure Build Path -> 選擇Source面板,再點Add Folder, 把源代碼所在的包路徑的上層目錄加進來,而且如果你是把兩個類寫在一個文件里的話,你在右鍵選擇Run As Java Appication 的時候,要把光標至於包括main方法的類上(相當於指定主類入口)

2、項目的Java Build Path中的Libraries中也許某個jar包是不可用的,顯示紅色叉叉。這說明系統找不到這個這個jar文件,把這個jar刪除或者重新加載進來即可。

 

3、某些情況下,最快捷的解決辦法是,打開帶有main函數的類,ctrl +A (全選)---> ctrl +X(剪切)-----> ctrl+S(保存)--->關閉---->再打開--->ctrl +V (粘貼) ---->OK;一句話就是剪切出去 關閉 再粘進來。(相當於讓 eclipse 重新編譯一下,如果你開啟了自動編譯的話。)

4、最常見的問題應該是下面的情況:package 被當做 folder 來對待了,導致所有的 .java 文件無法被 eclipse 識別,自然也就無法識別 main 函數,也就沒法編譯運行了,案例截圖:

此時最快的解決方案是右鍵源碼文件夾選擇:

src > remove from build path → src > Build Path > Use as Source Folder

最后說下 Folder 和 package 的區別:Folder靠"/"來進行上下級划分,package靠“.”來進行上下級划分

5、最壞的情況下,估計你得重建 Project。(這是最土但是最有效的解決方案)

6、如果上述不行,大家直接在 cmd 下 javac 然后 java 運行試試,如果這都報錯,那是你的 jdk 或者 os 環境有問題了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM