2016-09-06 120 views
0

我的項目看起來像這樣創建jar文件拋出NoClassDefFoundError的同時執行它

maven-simple 

    src/main/java   
    src/main/resources 
    src/test/java 
     -com.org.central 
      -CommonMethods.java 
    src/test/resources 

    pom.xml 

我想在Eclipse創建通過這種方法一個jar文件對上述項目

  1. 右鍵 - >導出 - >爪哇 - > JAR文件
  2. 點擊下一步 - >下一步 - >完成

前移植的jar文件已經在路徑中創建。 那麼我在其他一些項目中導入這個jar文件(例如: - 項目B)使用CommonMethods.java

但我得到這個錯誤

←[31mjava.lang.NoClassDefFoundError: com/org/central/CommonMethods 
at stepDefinitions.Check.iSeeElement(Check.java:14)  
Caused by: java.lang.ClassNotFoundException: com.org.central.CommonMethods 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at stepDefinitions.Check.iSeeElement(Check.java:14) 

我做了什麼錯?

+0

您應該仔細看看Maven文檔:http://stackoverflow.com/documentation/maven/topics&http://maven.apache.org/index.html –

+0

您需要將您的依賴關係包含在您的類路徑中。使用依賴關係創建jar(鏈接問題)或使用自定義類路徑。 – Tunaki

回答

0

您的jar必須包含.class文件,而不僅僅是.java文件。

運行一個mvn clean install,你會得到你的jar包含類。

順便說一句,總是(A L W A Y S),用大寫字母開始你的類名。

+0

「不僅.java文件」,我們是否需要java文件? – kuhajeyan

+0

將jar包中的源代碼包含進來並不罕見,儘管不是必需的。 – Andres

+0

我已經這樣做了,但運行package com.org.central不存在時仍然出現此錯誤。我可以在Eclipse中導入CommonMethods而不會出現任何錯誤。 – user1553680

相關問題