0

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

  清单版本:1.0
  主类:com.ensarm.niidle.web.scraper.NiidleScrapeManager
  类路径: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。所以我Class-Path=hector-0.6.0-17.jar在 MANIFEST.MF 文件中只给出了 jar 文件名。

尽管在 MANIFEST.MF 文件中提到了 Class-Path,当我使用命令运行它时:

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

它显示错误消息:

-- 线程“主”java.lang.NoClassDefFoundError 中的异常:
我/prettyprint/hector/api/Serializer
     在
 com.ensarm.niidle.web.scraper.NiidleScrapeManager.main(NiidleScrapeManager.java:21)
 引起:java.lang.ClassNotFoundException:
 me.prettyprint.hector.api.Serializer
     在 java.net.URLClassLoader$1.run(URLClassLoader.java:200)
     在 java.security.AccessController.doPrivileged(本机方法)
     在 java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     在 java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
     在 java.lang.ClassLoader.loadClass(ClassLoader.java:252)
     在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
     ... 1 更多

请给我这个错误信息的解决方案。

4

1 回答 1

2

Class-Path 是相对或绝对的 jar 文件所在的目录。所以对于你的情况,你必须将 hector-0.6.0-17.jar 到 /usr/local/bin

于 2011-01-13T10:51:12.947 回答