创建bat文件时如何解决java.lang.NoClassDefFoundError?
我正在尝试运行bat文件,它应该启动用java编写的restCRUD服务器。项目仅包含一个主方法,因此我的巴斯文件如下所示: java-jar TaxAppWebserver.jar 停顿 问题是,当我运行bat文件时,会得到java.lang.NoClassDefFoundError创建bat文件时如何解决java.lang.NoClassDefFoundError?,java,batch-file,Java,Batch File,我正在尝试运行bat文件,它应该启动用java编写的restCRUD服务器。项目仅包含一个主方法,因此我的巴斯文件如下所示: java-jar TaxAppWebserver.jar 停顿 问题是,当我运行bat文件时,会得到java.lang.NoClassDefFoundError Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence at facade
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
at facade.FacadeLogic.<init>(FacadeLogic.java:17)
at restCRUD.HandlerLogger.<init>(HandlerLogger.java:14)
at restCRUD.RestFileServer.run(RestFileServer.java:22)
at restCRUD.RestFileServer.main(RestFileServer.java:36)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
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)
有人能告诉我哪里出了问题吗?重建jar文件,将丢失的jar添加到
MANIFEST.MF
文件的类路径中。IDE(如Eclipse)可以在创建可执行jar文件时自动添加这些内容
Class-Path: javax.persistence.jar
通过在项目目录中创建lib文件夹并将所有外部库复制到此文件夹,我解决了这个问题。此外,我还必须更改我的bat文件
java -cp TaxAppWebserver.jar restCRUD.RestFileServer
因此它知道主方法在哪里。您需要使用-classpath在类路径上添加包含持久性类的JAR。
java -cp TaxAppWebserver.jar restCRUD.RestFileServer