【问题标题】:Mac Indexing and CLASSPATH problems - java.lang.NoClassDefFoundErrorMac 索引和 CLASSPATH 问题 - java.lang.NoClassDefFoundError
【发布时间】:2011-02-11 15:06:07
【问题描述】:

系统属性: Java 1.6 Mac OSX 版本 10 蚂蚁 1.8

场景:我正在做我最后一年的项目,即创建一个使用 Lucene 搜索我的网站和数据库的网站。我在这里通过 lucene 演示工作 http://lucene.apache.org/java/2_3_2/demo.html 其中谈到类路径 http://lucene.apache.org/java/2_3_2/demo3.html 和一个网络示例

我在我的主目录 /Users/philhunter/ 中创建了一个 .bash_profile 文件,用于设置我的类路径:

CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/lucene-core-3.0.3.jar
CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/lucene-demo-3.0.3.jar
CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/src/demo/org/apache/lucene/demo

当我尝试运行它在命令行上询问的命令时,我收到 ClassDefNotFoundError:

Exception in thread "main" java.lang.NoClassDefFoundError: /Users/philhunter/Desktop/COM562_Project/lucene-3/0/3/src/demo/org/apache/lucene/demo/IndexHTML
Caused by: java.lang.ClassNotFoundException: .Users.philhunter.Desktop.COM562_Project.lucene-3.0.3.src.demo.org.apache.lucene.demo.IndexHTML
    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)

命令行命令为:

java /Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/src/demo/org/apache/lucene/demo/IndexHTML -create -index /Applications/MAMP/htdocs/

它应该索引我的网站文件。该 indexHTML 文件是上面最后一个类路径目录中的一个 java 文件。有谁知道我为什么会出现错误!?

【问题讨论】:

  • .class 文件是否存在于 /Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/src/demo/org/apache/lucene/demo/IndexHTML 位置?

标签: java macos lucene classpath


【解决方案1】:

我认为您所经过的路径是问题所在。尝试将以下内容添加到您的 bash 脚本中

cd /Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/src/demo/
java org.apache.lucene.demo.IndexHTML -create -index /Applications/MAMP/htdocs/

问题是当你运行时

java /Users/philhunter/Desktop/COM562_Project/lucene-3.0.3/src/demo/org/apache/lucene/demo/IndexHTML

你是在告诉 java 运行包中的类

Users.philhunter.Desktop.COM562_Project.lucene-3.0.3.src.demo.org.apache.lucene.demo

【讨论】:

  • 另一个问题可能是类路径的第 3 行,它指向您可能拥有 .java 类的路径,而不是“根”包。
  • 我更改到该目录但仍然收到错误。至于第三个类路径,是的,它指向文件所在的 IndexHTML 目录。什么是“根包”?我应该放入另一个类路径以指向包含所有内容的 Lucene 文件夹吗? (有人告诉我应该具体说明目录)
猜你喜欢
  • 2011-12-07
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 2016-03-05
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
相关资源
最近更新 更多