我在以下文件夹中创建了我的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
它运作正常..
但是我不想给出完整的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
显示错误消息:
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
请告诉我解决方案...
答案 0 :(得分:1)
我至少看到两种解决方案:
Class-Path: lib/hector-0.6.0-17.jar
(适用于niidle.jar / lib / hector-0.6.0-17.jar)java -cp /Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar -jar /usr/local/bin/niidle.jar
答案 1 :(得分:0)
在运行命令的文件夹中创建一个lib
文件夹,将hector-0.6.0-17.jar
放入其中,然后再次尝试运行该命令。