5

我有一個項目,我一直在Ubuntu 12.04上的Eclipse 3.7.2中開發。最近,我重新調整了包含在包之間移動類的類層次結構。我沒有移動我的主類(「ob3.converter.Converter」),其中包含我的public static void main(String[] args)方法。破碎的Eclipse項目 - classNotFoundException - 找不到主類

現在,當我嘗試運行它,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: ob3/converter/Converter 
Caused by: java.lang.ClassNotFoundException: ob3.converter.Converter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: ob3.converter.Converter. Program will exit. 

我永遠只能果然奏效(在Java中)與Eclipse,它處理所有的開銷,我 - 所以我有一點了解這個錯誤或者可能導致它的原因。我已經瀏覽了我的Run Configuration/Classpath等,但不知道要尋找什麼,這是徒勞的。

有人能指出我正確的方向嗎?我已經搜索/搜索,大多數事情都是關於清單文件的,但是我一直無法在任何地方找到它。我的工作區文件夾只包含我的源文件。

我可以驗證:

  • 類 「轉換器」 包 「ob3.converter」 中存在。
  • 「Converter」類包含一個public static void main(String[] args)方法。
  • 項目屬性中Java Build Path頁面的「Source」選項卡顯示「converter/lib」和「converter/src」 - 這兩個文件夾包含我的整個項目源。
  • 運行配置/ JRE中使用的JRE是「java-6-openjdk-amd64」。
  • 在運行配置Classpath選項卡如下所示:
    • 自舉條目:
      • JRE系統庫【JAVA-6的OpenJDK-AMD64]
    • 用戶條目:
      • 轉換器(默認類路徑)
        • 轉換器
  • 到Converter.java的路徑沒有改變,因爲我上次成功運行它。

任何幫助非常感謝!

+0

如果您可以發佈eclipse的屏幕截圖,擴展包結構,並在編輯器中打開Converter類。您的項目是否在包資源管理器中顯示任何錯誤? 「問題」視圖中的任何錯誤? – devang

+4

您是否嘗試過處理「混淆」Eclipse工作區的標準技巧?刷新(F5)工作區。重新啓動Eclipse。關閉/打開項目。刪除項目(不要檢查從磁盤刪除!!!)並重新導入它。 –

+0

當你說跑步時,我假設你點擊頂部的跑步圖標。嘗試在包視圖中右鍵單擊Converter類並選擇運行爲 - > java應用程序。 –

回答

2

我認爲你應該重建你的項目。您可以通過單擊Projects> Clean ...來執行此操作。

有時Eclipse的自動構建在類的重構或移動方面存在問題。

0

我遇到了同樣的錯誤信息。對我來說,我是在linux上,發出java命令的用戶沒有足夠的權限來訪問類路徑中jar包的目錄。

相關問題