簡體   English   中英

罐中MANIFEST.MF的問題

[英]problem with MANIFEST.MF in jar

我在以下文件夾中創建了我的jar文件:

 /usr/local/bin/niidle.jar 

我有一個jarfile在以下文件夾中

 /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

它正常工作..

但是我不想給出完整的Class-Path名稱,我必須給出Class-Path如下:

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

它顯示錯誤消息:

  線程“主”中的異常java.lang.NoClassDefFoundError:me / prettyprint / hector / api / Serializer\n     在com.ensarm.niidle.web.scraper.NiidleScrapeManager.main(NiidleScrapeManager.java:21)\n 引起原因:java.lang.ClassNotFoundException:me.prettyprint.hector.api.Serializer\n    在java.net.URLClassLoader $ 1.run(URLClassLoader.java:200)\n    在java.security.AccessController.doPrivileged(本機方法)\n    在java.net.URLClassLoader.findClass(URLClassLoader.java:188)\n    在java.lang.ClassLoader.loadClass(ClassLoader.java:307)\n    在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)\n    在java.lang.ClassLoader.loadClass(ClassLoader.java:252)\n    在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)\n    ...還有1個 

請告訴我解決方案...

我看到至少兩個解決方案:

  1. 將hector-0.6.0-17.jar存儲在niidle.jar中,並在Class-Path中使用相對路徑。 例如, 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

在運行命令的文件創建一個lib文件 ,將hector-0.6.0-17.jar放入其中,然后嘗試再次運行該命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM