简体   繁体   English

创建bat文件时如何解决java.lang.NoClassDefFoundError?

[英]How to solve java.lang.NoClassDefFoundError when creating bat file?

I am trying to run bat file which should start my restCRUD server written in java. 我正在尝试运行bat文件,该文件应该启动用Java编写的restCRUD服务器。 Project contains only one main method so my bath file looks like this: 项目仅包含一种主要方法,因此我的浴文件如下所示:

java -jar TaxAppWebserver.jar java -jar TaxAppWebserver.jar

pause 暂停

The problem is that when I run bat file I get java.lang.NoClassDefFoundError. 问题是,当我运行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)

Line 17 from the FacadeLogic.java: FacadeLogic.java的第17行:

 EntityManagerFactory emf = Persistence.createEntityManagerFactory("TaxAppWebserverPU");

Can anyone give me a clue of what is wrong? 谁能给我一个关于哪里出问题的线索?

Rebuild your jar file with the missing jar added to the classpath in the MANIFEST.MF file. 重建丢失的jar,并将其添加到MANIFEST.MF文件的类路径中,以重建jar文件。 IDE's such as Eclipse can add these automatically when creating executable jar files 创建可执行jar文件时,IDE(例如Eclipse)可以自动添加这些文件

Class-Path: javax.persistence.jar

I solved the problem by creating lib folder in the project directory and copying all the external libraries to this folder. 我通过在项目目录中创建lib文件夹并将所有外部库复制到此文件夹来解决了该问题。 Also, I had to change my bat file for 另外,我不得不将我的蝙蝠文件更改为

java -cp TaxAppWebserver.jar restCRUD.RestFileServer

so that it knows where the main method is. 以便知道主要方法在哪里。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM