java - jar 中的 MANIFEST.MF 出现问题

标签 java

我已在以下文件夹中创建了 jar 文件:

/usr/local/bin/niidle.jar

我有一个 jar 文件,位于以下文件夹中

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

这个文件“hector-0.6.0-17.jar”我必须包含在 jar 中的 MANIFEST.MF 中。

当我在 MANIFEST.MF 中提到类路径时,如下所示:

Manifest-Version: 1.0
Main-Class: com.ensarm.niidle.web.scraper.NiidleScrapeManager
Class-Path: /Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar 

当我使用命令运行此命令时:

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

工作正常..

但我不想给出完整的类路径名称,我必须给出类路径,如下所示:

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

当我使用命令运行此命令时:

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

显示错误消息:

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

请告诉我解决方案...

最佳答案

我至少看到两种解决方案:

  1. 将 hector-0.6.0-17.jar 存储在 niidle.jar 中,并在 Class-Path 中使用相对路径。例如。 类路径:lib/hector-0.6.0-17.jar(对于 niidle.jar/lib/hector-0.6.0-17.jar)
  2. java -cp/Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar -jar/usr/local/bin/niidle.jar

关于java - jar 中的 MANIFEST.MF 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4677342/

相关文章:

在 XML 中配置的 Spring Integration Kafka 端点的 Java DSL 等价物

java - 在 javaFX 中自动滚动

java - 增加 R 中的 Java 堆大小没有效果

java - 这里不允许使用 Void (GUI Netbeans)

java - 如何在java中根据概率生成随机字母?

java - Spring Boot - 不同的模型表示/多个 API

java - Android GridView 项目在按下时更改图像并更改回来

java - 使用泛型使用变量中的类实例化Java匿名内部类

java - 在桌面 Java 应用程序中缓存 facebook 图像时理解 x-* header

java - printf %f 保留 4 位小数,最后为符号 "%"