java.lang.NoClassDefFoundError jar应用程序

时间:2015-07-01 19:44:09

标签: java netbeans maven-2

我在Netbeans 8(linux)上有一个maven项目。

我的项目是一个maven应用程序,我必须' export'作为JAR可运行的JAVA应用程序。虽然我在Netbeans中开发系统,一切都可以正常使用maven依赖项,但是在编译并生成目标文件夹中的.jar文件后,我得到了错误NoClassDefFoundError。在我通过谷歌搜索时,我发现当我在开发环境中拥有依赖项时会导致此问题,而不是在使用类路径编译时。

一个解决方案是在项目中包含依赖jar作为库,但是我失去了maven功能。我不想做,就在最后一种情况。

如果不在项目中添加依赖项作为库,我该如何解决这个问题呢?

非常感谢!

2 个答案:

答案 0 :(得分:0)

您没有使用正确的maven插件来生成可运行的JAR,这意味着jar中包含所有依赖项。 这是它应该是什么样子

<plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <finalName>.....</finalName>
        <outputDirectory>${basedir}</outputDirectory>
        <archive>
        <manifest>
            <mainClass>......</mainClass>
        </manifest>
        </archive>
        <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
        </execution>
    </executions>
    </plugin>
</plugins>

您配置的是生成jar文件的标准maven插件,但不包含依赖项。

答案 1 :(得分:0)

生成错误的原因是Hibernate和POI。

AskAgain:
    Orientation = InputBox(Prompt:="Enter P for Portriait, L for Landscape")

    Select Case UCase(Orientation) 
         Case "L"
            Selection.PageSetup.Orientation = wdOrientLandscape
         Case "P"
            Selection.PageSetup.Orientation = wdOrientPortrait
         Case Else
            GoTo AskAgain
    End Select