私が持っている場合
CLASSPATH=/blah;/foo
次に実行します
java -cp bar.jar com.yourcompany.SomeMain
クラスパスは今ですか
bar.jar
またはそれは
/blah;/foo;bar.jar
基本的に、コマンドラインスイッチは既存のものを上書きまたは拡張しますCLASSPATH
か?
-cp オプションが CLASSPATH 環境変数をオーバーライドするようです。
$ export CLASSPATH=Tests
$ java Printf
Team Name No. of Wins No. of Losses
Bobcats 0 0
Tigers 1 1
Lions 2 2
Cheetahs 3 3
Jackals 4 4
Leopards 5 5
Snow Leopards 6 6
Cougars 7 7
Mountain Lions 8 8
Bobcats 9 9
$ java -cp . Printf
Error: Could not find or load main class Printf
CLASSPATH 環境変数はまだフォルダー Tests に設定されていますが、-cp
オプションを使用するとそれがオーバーライドされ、クラスパスが.
現在のディレクトリである に変更されるため、クラス ファイルが見つかりません。
はい! cp または classpath オプションはシステム変数をオーバーライドします。詳細については
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html
-cp コマンド ライン スイッチはオーバーライドします。実際、-jar スイッチや IDE 固有のクラスパス設定など、いくつかの要素が CLASSPATH 環境変数をオーバーライドします。
いずれにせよ、コードの実行時にどのクラスパスが参照されるかを簡単に確認したい場合は、クラスにこの行を表示することを検討してください。
System.getProperty("java.class.path");