Когда вы устанавливаете переменную окружения, такую как CLASSPATH
, то по умолчанию она применяется только к текущему процессу (т.е. самому процессу оболочки) - она не доступна для процесса Java, который вы запускаете в следующей строке.Чтобы сделать его доступным для других процессов, вам необходимо «экспортировать» переменную.В этом случае вы можете использовать что-то вроде:
export CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar
Это в основном говорит "установите переменную CLASSPATH в ее текущее значение плюс местоположение банки lucene и сделайте новую переменную доступной для любых процессов, запущенных из этогоshell ".
Однако в java обычным способом установки classpath является выполнение его как части самой команды 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
.