1

我正在尝试在我的 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该类不存在。如果是这种情况,我该如何找到它——并确保我的系统知道它的存在?

4

5 回答 5

4

您必须将 nutch jar 添加到您的类路径中。看这里如何

似乎 nutch 发行版不附带罐子。您必须使用 ant 自己构建它build.xml。输入ant jarnutch 目录(如果您安装了 ant),它将生成 jar。

于 2010-12-03T08:33:53.680 回答
2

对于 nutch-1.4,运行

ant job

从 nutch 目录中,然后将生成的 nutch-*.job 文件从 build 子目录移动到 src 子目录中,这对我有用。

于 2012-03-17T11:25:30.273 回答
0

我不知道它有多旧,我在使用 nutch 1.4 时遇到了同样的问题,我的解决方案是:

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

在 bin 中打开 nutch 和

  1. 手动将 cygwin 更改为 true
  2. 从 lib 文件夹中删除本机文件夹

99% Crawl 应该输出一些熟悉的东西。

于 2012-01-31T09:53:14.637 回答
0

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

于 2010-12-03T08:35:31.137 回答
0

你用的是什么版本?因为某些版本包含 .jar,但最近的 1.2 等版本没有,并且在某处有警告告诉您必须自己构建它。

于 2010-12-03T13:56:58.690 回答