0

私のプログラムはC:\ Users \ Programs\x.javaにあります

X.javaは、y.jar、z.jarにあるいくつかのファイルを使用しています。

y.jarとz.jarはC:\ Users\Programsフォルダーにあります。

(1)C:Users \ Programs> javac x.java

(2)C:Users \ Programs> javac -classpath y.jar:z.jar x.java

(2)を実行してもエラーは発生しませんが、(1)を実行するとエラーが発生します。そのクラスパスは現在のフォルダに設定されていませんか。もしそうなら、なぜそれはy.jarとz.jarを見ないのですか。

4

3 に答える 3

2

クラスパスにある jar の内容は、クラスパス自体に自動的に追加されません。あなたの場合の適切なクラスパスは、ケース(2)で指定したものです。

于 2012-11-14T21:13:32.247 に答える
1

クラスパスには現在のフォルダが含まれます。
ただし、現在のフォルダーのサブフォルダーは含まれません。

を使用しようとすると、Javaはクラスパスの各フォルダ内で直接com.example.MyClass名前が付けられたファイルを探します。 クラスパス内のフォルダー内のサブフォルダーまたはJARは検索されません。com/example/MyClass.class

于 2012-11-14T21:14:13.127 に答える
0

はい、クラスパスは実際にデフォルトで現在のフォルダに設定されている必要があります。ただし、特定のフォルダーに設定することは、特定のJARファイルに設定することと同じではありません。

于 2012-11-14T21:14:34.543 に答える