web-dev-qa-db-ja.com

Macユーザー-MacでCLASSPATHSを設定するにはどうすればよいですか(Luceneデモに取り組んでいます)

Apache Luceneデモを機能させようとしていますが、このチュートリアルでクラスパスを設定することにしました http://lucene.Apache.org/Java/2_3_2/demo.html

私はWebを探しましたが、これらは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 

2番目のものはエラーを引き起こします-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シェルスクリプトは比較的新しいです。私がCLASSPATHを正しく設定しているかどうか、そしてそれがエラーの原因であるかどうかを誰かが知っていますか?

7
Phil Hunter

CLASSPATHのような環境変数を設定すると、デフォルトでは現在のプロセス(つまり、シェルプロセス自体)にのみ適用されます-Javaプロセスでは使用できません次の行で起動します。他のプロセスで使用できるようにするには、変数を「エクスポート」する必要があります。この場合、次のようなものを使用できます。

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

これは基本的に、「CLASSPATH変数を現在の値とlucene jarの場所に設定し、このシェルから起動されたすべてのプロセスで新しい変数を使用できるようにする」ことを意味します。

ただし、Javaクラスパスを設定する通常の方法は、-classpathまたは-cpを使用して、Javaコマンド自体の一部として行うことです。オプション。あなたの場合、次のようになります。

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シェル(およびユーザーが使用するシェル)であるためです。 re using)はbashです。これはsetenvを認識せず、エラーメッセージ-bash: setenv: command not foundで認識されないことを通知します。

7
matt

ターミナルタイプで

$ vim ~/.bash_profile

ファイルを編集して1行追加します。

export CLASSPATH=${CLASSPATH}:/usr/local/lucene-3.6.2/lucene-core-3.6.2.jar:/usr/local/lucene-3.6.2/contrib/demo/lucene-demo-3.6.2.jar;

必ずあなたの道を変えてください。

あなたのやり方では、クラスパスにlucene-demo-3.0.3.jarを追加することに失敗します。

8
malajisi

ホームディレクトリに.bash_profileファイルを作成し、次のようなことを行います。

export GRAILS_HOME=/usr/share/grails
...
export PATH=${GRAILS_HOME}/bin:${GROOVY_HOME}/bin:/usr/local/mysql-5.1.45-osx10.6-x86_64/bin:${PATH}

その作業を行ってクラスパスを設定できます。これらの例は、環境変数を宣言する方法と、その変数を他の変数で使用する方法を示しています。

1
hvgotcodes