Mac用户-如何在Mac中设置CLASSPATH(我正在开发Lucene演示)

我正在尝试使我的Apache

Lucene演示正常工作,并且我打算在本教程中设置类路径http://lucene.apache.org/java/2_3_2/demo.html

我已经搜寻了网络,并使用了找到CLASSPATH的2个解决方案:

CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar

setenv CLASSPATH ${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar

第二个错误-bash:setenv:命令未找到

第一个似乎接受了,但是我尝试了教程的下一步,却遇到了错误。下一步是运行以下命令:

Phil-hunters-MacBook:webapps philhunter$ java org.apache.lucene.demo.IndexFiles /Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/src

这给了我错误:

线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / lucene / demo /

IndexFiles

这使我相信我的CLASSPATHS设置不正确。我是否可以假设这一点?我尝试了其他教程和演示,并且看到了很多相同的错误。我对Lucene不熟悉,对Mac和Unix

Shell脚本来说相对较新。有人知道我是否正确设置了CLASSPATH,这就是错误的原因吗?

回答:

当您设置一个环境变量时CLASSPATH,默认情况下,它仅适用于当前进程(即Shell进程本身)-下一行启动的Java进程不可用。为了使其可用于其他进程,您需要“导出”变量。在这种情况下,您可以使用类似:

export CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar

基本上是这样说的:“将CLASSPATH变量设置为其当前值加上lucene jar的位置,并使新变量可用于从此shell启动的任何进程”。

但是,对于Java,设置类路径的通常方法是java使用-classpath-cp选项将其作为命令本身的一部分来进行。在您的情况下,它看起来像:

Phil-hunters-MacBook:webapps philhunter$ java -cp /Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar org.apache.lucene.demo.IndexFiles /Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/src

顺便说一句,使用该setenv行时看到的错误是因为setenvC外壳中使用了该命令来设置环境变量,但是默认的Mac外壳(以及您正在使用的外壳)bash却无法识别setenv并让您知道它无法通过错误消息识别它:-bash:

setenv: command not found

以上是 Mac用户-如何在Mac中设置CLASSPATH(我正在开发Lucene演示) 的全部内容, 来源链接: utcz.com/qa/432971.html

回到顶部