1. 程式人生 > >錯誤:找不到或無法載入主類 xxxx

錯誤:找不到或無法載入主類 xxxx

我的專案是maven+spring專案

在程式碼中寫main方法進行測試報錯,錯誤:找不到或無法載入主類 xxx.xxx.xxx.Test

在網上搜了很多原因,什麼classpath沒配置(jdk1.5之後不需要配置classpath的),path路徑寫錯了,引入的jar包有問題刪掉重新引用,refresh專案,clean專案,rebuild專案,關閉程式再開,從svn上down下來重新匯入什麼的,都沒有用,我只能說兄弟們你們沒碰到疑難雜症啊。

然後看到有個帖子說,去到java檔案目錄下,直接javac編譯,然後java執行,看看會如何

其實這是個非常好的方法,首先排除IDE的干擾,如果javac 或者java命令系統認不出來,肯定是環境變數設定的有問題。如果是其它的問題,也應該會有相應提示

於是我去試了一下,報了一個很奇怪的錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: xxxxx<wrong name xxxxx>

找原因,http://stackoverflow.com/questions/7509295/noclassdeffounderror-wrong-name/7509317#7509317,這個帖子裡有人問了這個問題,,,原來我的java檔案是有package的,應該是到包的根目錄去執行java命令,然後帶著包的完整路徑,試了一下是可以成功執行的。也就是說環境變數沒有問題,那就是eclipse裡的設定有問題

然後再找,發現有個帖子說,我們在eclipse下面新建maven專案,預設是沒有src/main/java這個目錄的,這使我們後來新增的,它在預設output folder裡面的classes目錄下並沒有生成相應的class檔案,需要修改成指定的。然後我試了一下先改成指定的,再改成預設的,就會把java檔案編譯到classes下面,然後再“Run As Java Application”就可以正常執行了

參見:http://blog.csdn.net/nich002/article/details/43273219