2012-12-26 254 views
0

所以很长一段时间以来,我一直在寻找网络不断寻找其他人的问题和修复希望他们会对我的问题虔诚,但我似乎无法找到任何涉及playn的相同问题的人Playn mvn干净安装错误“NoClassDefFoundError:playn/core /游戏

我可以运行“mvn test”cmd和mu小项目运行完美,但是当我最终导出项目时使用“mvn clean install”并尝试运行myApp-core-1.0-SNAPSHOT.jar我得到一个异常:

Exception in thread "main" java.NoClassDefFoundError: playn/core/game

IMĴ乌斯特想知道过去是否有人遇到过这个问题,并指出我正确的方向来克服它,因为这个应用程序是我的A级课程作业,并且很快就会交给我,我非常担心我可能无法达到截止日期为日期移交,我真的希望,这并不发生d:

这是我myApp-core pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-        
v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<parent> 

<groupId>com.ALevelWork</groupId> 
<artifactId>zombiepanic</artifactId> 
<version>1.0-SNAPSHOT</version> 
</parent> 

<artifactId>zombiepanic-core</artifactId> 
<packaging>jar</packaging> 
<name>ZombiePanic Core</name> 

<dependencies> 
<dependency> 
    <groupId>com.googlecode.playn</groupId> 
    <artifactId>playn-jbox2d</artifactId> 
    <version>${playn.version}</version> 
</dependency> 

<dependency> 
    <groupId>com.googlecode.playn</groupId> 
    <artifactId>playn-core</artifactId> 
    <version>${playn.version}</version> 
</dependency> 

</dependencies> 

<build> 
<plugins> 

    <plugin> 
<!-- Build an executable JAR --> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jar-plugin</artifactId> 
<configuration> 
<archive> 
    <manifest> 
    <addClasspath>true</addClasspath> 
    <classpathPrefix>lib/</classpathPrefix> 
     <mainClass> ZombiePanic.core.ZombiePanic</mainClass> 
    </manifest> 
</archive> 
</configuration> 
</plugin> 

    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    </plugin> 
    </plugins> 

    <resources> 
    <!-- include the source files in our main jar for use by GWT --> 
    <resource> 
    <directory>${project.build.sourceDirectory}</directory> 
    </resource> 
    <!-- and continue to include our standard resources --> 
    <resource> 
    <directory>${basedir}/src/main/resources</directory> 
    </resource> 
    </resources> 
</build> 
</project> 

由于提前,

雅各

+1

'NoClassDefFoundError'通常表示什么? –

+0

从研究到错误我认为这意味着类是在编译过程中发现,但没有在运行过程中发现,....我认为 – WockaWocka

+0

这意味着你的结果jar不包含所有需要的依赖关系。 – khmarbaise

回答

0

我有以下修正了这个问题这tutori al(http://jameswilliams.be/blog/entry/255),我没有将zombiepanic-core链接到java后端(zombiepanic-java)来执行此操作,您需要首先将此插件添加到java后端pom.xml中:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.YourPackage.java.JarJarDemoJava</mainClass> </manifest> </archive> </configuration> </plugin>

<plugin> 
    <groupId>org.sonatype.plugins</groupId> 
    <artifactId>jarjar-maven-plugin</artifactId> 
<version>1.5</version> 
<executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>jarjar</goal> 
     </goals> 
     <configuration> 
      <rules /> 
     </configuration> 
    </execution> 
</executions> 

一旦你做到了这一点,它通过增加,这也为Java后端的pom.xml链接到核心类(zombiepanic芯)

记得将主类连接到你的java后端版本,以便考试而是ZombiePanicJava而不是ZombiePanic的核心版本。