0

Linux では、次のように jar ファイルを実行しようとしています。

java -jar plantuml.jar -testdot

次のいずれかに設定している間CLASSPATH(ファイルは にあります/home/user/plantuml.jar):

export CLASSPATH=/home/user
export CLASSPATH=/home/user/
export CLASSPATH=/home/user/plantuml.jar

どちらの場合でも、どのように定義CLASSPATHしても、javaコマンドはエラーになりますUnable to access jarfile plantuml.jar。ここで何が間違っていますか?

4

4 に答える 4

2

パラメータの後に完全なパスを指定する必要があります-jar。したがって、あなたの例では、電話する必要があります

java -jar /home/user/plantuml.jar -testdot

$CLASSPATH、追加のファイル (クラス/リソース) を検索するためにのみ評価されますが、コマンド ラインで定義された jar ファイルは検索されません。

于 2013-06-07T07:31:11.823 に答える
0

クラスパスは、クラスを名前で参照するときにクラスを見つけるために使用されます。これは基本的に、JVM がクラスを検索する必要があるパス (ディレクトリと jar/zip ファイル) のリスト、またはClassLoader.getResourceAsStream().

コマンド ラインの -jar オプションに渡される値は、JAR ファイルへのファイル パスです。

そのため、jar ファイルを名前だけで参照している場合、jar ファイルは見つかりません。CLASSPATH 内の JAR ファイル パスは、他のリソースを「含む」パス要素であると想定されています。

ここで行う必要があるのは、次のいずれかです

  1. jar を実行しようとするときに、jar ファイルへのフル パスを指定します。
  2. クラスパスを jar ファイルのパスに設定し、実行するメイン クラスの名前を指定して java コマンドを実行します。
于 2013-06-07T07:32:14.957 に答える