私はクラスパスを出力する簡単なJavaプログラムを持っています。次のようにフォルダ構造は次のとおりです。CygwinでJavaプログラムを実行中 - クラスパスが見つかりません
[~/tmp/bin]# ls
launcher/ PrintClasspath.class*
、同じクラスのコピー1つのより下のレベルで
[~/tmp/bin/launcher]# ls
PrintClasspath.class*
私は~/tmp
ディレクトリにジャンプアップし、私の~/tmp/bin
ディレクトリにPrintClasspath
を実行すると、私は。クラスパスとして./bin
と書いてあります。
[~/tmp]# java -cp "./bin" PrintClasspath
/C:/Cygwin/home/user/tmp/bin/
または私は次のようにクラスパスを編集した場合、私は私が~/tmp/bin/launcher
ディレクトリ内のネストされた同じファイルを実行することができます
[~/tmp]# java -cp "./bin/launcher" PrintClasspath
/C:/Cygwin/home/user/tmp/bin/launcher/
をしかし、私は私の~/tmp
ディレクトリに座るしようとすると、実行しよう私のクラスパスとして./bin
と~/tmp/bin/launcher
ディレクトリに私のクラスとクラスは以下を経由して配置されている場所の資格:
[~/tmp]# java -cp "./bin" launcher.PrintClasspath
Error: Could not find or load main class launcher.PrintClasspath
それは失敗します。私は私のLinuxボックスで同じテストを実行し、クラスパスをクラスパスに与えた後にクラスがサブディレクトリにある場所を修飾して、複数のディレクトリをうまく動作させました。
私はもともとこれがWindows/Cygwinのニュアンスであると想定していましたが、Windowsのコマンドプロンプトと同じ結果で同じ演習を試みました。私はここで欠けています。私は、Windows Javaプログラムを完全なクラスパスで実行するだけでいいですか?