gpt4 book ai didi

java - 当 MANIFEST.MF 中列出该类时,为什么我的 jar 会生成 NoClassDefFoundError?

转载 作者:行者123 更新时间:2023-12-02 08:25:09 24 4
gpt4 key购买 nike

我已在以下文件夹 usr/local/bin/niidle.jar 中创建了 jar和我的MANIFEST.MF文件内容如下:

  Manifest-Version: 1.0  Main-Class: com.ensarm.niidle.web.scraper.NiidleScrapeManager  Class-Path: hector-0.6.0-17.jar

我验证了文件 hector-0.6.0-17.jar也存在于文件夹中:

/Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar

我不想在 MANIFEST.MF 中给出完整的类路径名称文件,因为我必须在另一台机器上运行这个 jar。所以我只给出了jar文件名Class-Path=hector-0.6.0-17.jar在 MANIFEST.MF 文件中。

尽管在 MANIFEST.MF 文件中提到了类路径,当我使用命令运行此命令时:

java -jar /usr/local/bin/niidle.jar arguments...

它显示错误消息:

--Exception in thread "main" java.lang.NoClassDefFoundError:me/prettyprint/hector/api/Serializer     at com.ensarm.niidle.web.scraper.NiidleScrapeManager.main(NiidleScrapeManager.java:21) Caused by: java.lang.ClassNotFoundException: me.prettyprint.hector.api.Serializer     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)     at java.lang.ClassLoader.loadClass(ClassLoader.java:252)     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)     ... 1 more

请给我一个解决此错误消息的方法。

最佳答案

Class-Path 是 jar 文件所在目录的相对路径或绝对路径。因此,对于您的情况,您必须将 hector-0.6.0-17.jar 复制到/usr/local/bin

关于java - 当 MANIFEST.MF 中列出该类时,为什么我的 jar 会生成 NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4679153/

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