小编Tob*_*ias的帖子

Java NoClassDefFoundError尽管设置了classpath

我在使用控制台和/或Ant运行Java应用程序时遇到了一些麻烦.我知道很多启动问题与类路径没有设置或设置不正确有关,虽然我很确定我设置正确,所以我的搜索只产生了结果.

以下是我的应用程序的一般设置:类在包模型,视图和控制器中.controller.Controller是主方法的类.我使用objectdb作为我的JPA提供程序.

我正在使用Ant来编译我的应用程序.

编译之后,我可以使用以下脚本从ant运行我的应用程序:

<target name="run" description="default build process">
    <java fork="true" classname="${main-class}">
        <classpath>
            <path refid="classpath" />
        </classpath>
    </java>
</target>
Run Code Online (Sandbox Code Playgroud)

其中$ {main-class}是controller.Controller和classpath由/ lib和/ dist文件夹组成(应用程序的jar文件被编译为/ dist)

现在,我尝试了所有的.jar文件复制从/ lib和/ DIST到一个单独的文件夹,并运行他们java -jar cooking.jar -cp .导致

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
    at model.jpa.JPAModelFactory.<init>(JPAModelFactory.java:28)
    at model.jpa.JPAModelFactory.<init>(JPAModelFactory.java:24)
    at controller.Controller.<init>(Controller.java:59)
    at controller.Controller.main(Controller.java:116)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

所以我尝试了ant并略微修改了上面的构建目标:

<target name="run2" description="default build process">
    <java fork="true" …
Run Code Online (Sandbox Code Playgroud)

java classpath noclassdeffounderror

8
推荐指数
1
解决办法
6181
查看次数

标签 统计

classpath ×1

java ×1

noclassdeffounderror ×1