我正在尝试运行bat文件,该文件应该启动我用java编写的restCRUD服务器。项目只包含一个主要方法,因此我的浴室文件如下所示:
java -jar TaxAppWebserver.jar
暂停
问题是,当我运行bat文件时,我得到java.lang.NoClassDefFoundError。
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)
FacadeLogic.java的第17行:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TaxAppWebserverPU");
有人能给我一些错误的线索吗?
答案 0 :(得分:0)
使用添加到MANIFEST.MF
文件中类路径的缺少jar重建jar文件。 Eclipse等IDE可以在创建可执行jar文件时自动添加这些文件
Class-Path: javax.persistence.jar
答案 1 :(得分:0)
我通过在项目目录中创建lib文件夹并将所有外部库复制到此文件夹来解决了这个问题。另外,我必须更改我的bat文件
java -cp TaxAppWebserver.jar restCRUD.RestFileServer
以便知道主要方法的位置。