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

有時候 Eclipse 會發神經,好端端的 project 就這麼編譯不了了,連 Hello World 都會報「找不到或沒法加載主類(Exception in thread "main" java.lang.NoClassDefFoundError:xxx)」的錯誤,我已經遇到好幾回了,之前是懶得深究就直接重建project了,但遇到次數多了必須深究下了,現總結幾種解決方案,你們根據本身的狀況逐一嘗試便可。html

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

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

 

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

四、最多見的問題應該是下面的狀況:package 被當作 folder 來對待了,致使全部的 .java 文件沒法被 eclipse 識別,天然也就沒法識別 main 函數,也就無法編譯運行了,案例截圖:函數

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

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

最後說下 Folder 和 package 的區別:Folder靠"/"來進行上下級劃分,package靠「.」來進行上下級劃分插件

五、最壞的狀況下,估計你得重建 Project,或者將你的工程轉換成 maven project(Eclipse maven 插件自帶該功能)。(這是最土可是最有效的解決方案)htm

六、若是上述不行,你們直接在 cmd 下 javac 而後 java 運行試試,若是這都報錯,那是你的 jdk 或者 os 環境有問題了。blog

相關文章
相關標籤/搜索