Nutch问题:java.lang.NoClassDefFoundError

时间:2010-12-03 08:29:54

标签: java tomcat cygwin nutch

我正在尝试在我的Windows机器上运行Nutch。我安装了Nutch,Java,Tomcat和Cygwin。当我尝试在Cygwin中运行crawl命令时,出现以下错误:

java.lang.NoClassDefFoundError: org/apache/nutch/crawl/Crawl
Caused by: java.lang.ClassNotFoundException: org.apache.nutch.crawl.Crawl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.nutch.crawl.Crawl.  Program will exit.
Exception in thread "main"

我的Java有点生疏,但这似乎告诉我Crawl类不存在。如果是这种情况,我该如何找到它 - 并确保我的系统知道它的存在?

5 个答案:

答案 0 :(得分:4)

您必须将nutch jar添加到类路径中。 See here how

看来nutch发行版没有附带jar。你必须使用ant build.xml自己构建它。在nutch目录中键入ant jar(如果安装了ant),它将生成jar。

答案 1 :(得分:2)

表示nutch-1.4,正在运行

ant job

从nutch目录中,然后将生成的nutch - * .job文件从build子目录移动到src子目录中,为我做了诀窍。

答案 2 :(得分:0)

JVM告诉你它无法找到Crawl类。这很可能是因为传递给java命令的命令行参数未指定正确的类路径。 (类路径是搜索类时使用的搜索路径,通常在命令行或使用CLASSPATH环境变量设置。)

答案 3 :(得分:0)

你使用的是什么版本?因为某些版本包含.jar,但是最近的版本包含.jar,但是有一个警告告诉你必须自己构建它。

答案 4 :(得分:0)

我不知道它有多久,我和nutch 1.4有同样的问题,我的解决方案:

  • 将NUTCH_JAVA_HOME设置为java主文件夹
  • 设置NUTCH_HOME
  • 设置JAVA_HOME
  • 将CLASSPATH设置为包含所有必需的jar文件

打开bin中的nutch 和

  1. 手动将cygwin更改为true
  2. 从lib文件夹中删除本机文件夹
  3. 99%抓取可以输出熟悉的东西。