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
行时看到的错误是因为setenv
C外壳中使用了该命令来设置环境变量,但是默认的Mac外壳(以及您正在使用的外壳)bash
却无法识别setenv
并让您知道它无法通过错误消息识别它:-bash:
setenv: command not found。
以上是 Mac用户-如何在Mac中设置CLASSPATH(我正在开发Lucene演示) 的全部内容, 来源链接: utcz.com/qa/432971.html