1

次の設定を使用して、cygwin + windows で Java を実行できます (sw/jar ディレクトリにはいくつかの jar ファイルがあり、java コマンドラインから関連するファイルを選択します)。

CLASSPATH=.;C:\sw\java_6u35\lib\\*;C:\sw\jar\\*
java org.antlr.Tool Calc.g

しかし、Linux で実行すると、次の問題が発生します。

(1) クラスパスにディレクトリ名を設定できません。次の行でエラーが報告されます。

setenv CLASSPATH .:/sw/jdk1.6.0_35/lib/\*:/sw/jar/*

(2) -jar オプションを指定して明示的に実行すると、まだエラーが発生します。

java -jar /sw/jar/antlr-3.4.jar org.antlr.Tool Calc.g
error(7):  cannot find or open file: org.antlr.Tool

ただし、クラスは存在します。するとjar tf /sw/jar/antlr-3.4.jar、次のようになります。

...
org/antlr/Tool.class

したがって、私の質問は次のとおりです。(a) jar ディレクトリが複数の jar ファイルを含む xxx であることを unix で指定するにはどうすればよいですか? (2) 実行時にこのディレクトリから関連する jar を選択するにはどうすればよいですか?

4

2 に答える 2

4

ディレクトリに複数のjarを指定するには、Javaコマンドで直接、これを使用します

java -cp "/sw/jar/*" org.antlr.Tool Calc.g

これにはすべての瓶が含まれます

Unix/Linux システムでクラスパスを設定する場合は、これを使用します

export CLASSPATH=/sw/jar/a.jar:/sw/jar/b.jar

于 2013-07-09T13:17:56.473 に答える
0

UNIX では、これを使用してクラスパスを設定します。

export CLASSPATH=myClassPath

jar が見つからない場合、先頭にスラッシュ (/) を使用しています。これは、パスが絶対パス (ホーム フォルダーからの相対パスではない) であることを意味します。これでよろしいですか?

パスをフォルダーからの相対パスにしたい場合は、次を試してください。

java -jar ~/mypathToMyJar
于 2013-07-09T13:14:35.480 に答える