2016-09-06 87 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