Mac索引和CLASSPATH问题 - java.lang.NoClassDefFoundError

时间:2011-02-11 15:06:08

标签: java macos lucene classpath

系统属性: Java 1.6 Mac OSX版本10 Ant 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文件。任何人都知道我为什么会收到错误!?

1 个答案:

答案 0 :(得分:0)

我认为你传递的路径是问题所在。尝试将以下内容添加到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