gpt4 book ai didi

java - 无法运行 jar 文件 - NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 13:51:04 25 4
gpt4 key购买 nike

我有一个名为“TJXLineFilterPlugin”的 jar 文件。 MANIFEST.MF 的值为

Manifest-Version: 1.0
Class-Path: c:\stdintjbt\java\lib\ojdbc14.jar c:\stdintjbt\java\lib\commons-lang-2.0.jar c:\stdintjbt\java\lib\jitterbit-plugin-sdk.jar c:\stdintjbt\java\lib\jitterbit-xml-utils.jar .
Created-By: 1.6.0_35 (Sun Microsystems Inc.)
Main-Class: org.jitterbit.plugins.tjx.TJXLineFilterPlugin

尝试运行

java -jar E:\TJXLineFilterPlugin.jar

jar里面有一个文件夹结构是

org/jitterbit/plugins/tjx/TJXLineFilterPlugin.class

但它会抛出错误,例如,

Exception in thread "main" java.lang.NoClassDefFoundError: org/jitterbit/plugins
/tjx/TJXLineFilterPlugin
Caused by: java.lang.ClassNotFoundException: org.jitterbit.plugins.tjx.TJXLineFi
lterPlugin
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)
Could not find the main class: org.jitterbit.plugins.tjx.TJXLineFilterPlugin. Pr
ogram will exit.

我也尝试使用类路径cp运行。

最佳答案

NoClassDefFoundError 通常表示列出的类已找到,但无法加载,因为无法找到其某些依赖项。

我会向您指出 MANIFEST 文件中的 Class-Path 条目:

Class-Path: ... c:\stdintjbt\java\lib\ojdbc14.jar .

首先,您应该列出相关 JAR 以及相对于相关 JAR(您的 JAR)的路径,而不是像您那样使用绝对路径。

其次,我认为 . 甚至不应该在那里,因为内部 JAR 类路径与磁盘上的类路径不同,您使用 将当前工作目录添加到类路径中>..

更新

Java 应用程序通常以以下结构交付/部署:

myapp/
applauncher (script or executable)
+ conf
+ logs
lib/
myapp.jar
a.jar
b.jar
...

对于此示例,您的 Class-Path 条目应为:

Class-Path: ojdbc14.jar commons-lang-2.0.jar jitterbit-plugin-sdk.jar jitterbit-xml-utils.jar

关于java - 无法运行 jar 文件 - NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com