簡単な Java プログラムをコンパイルして実行しようとしています。このプログラムは、基本的に hello world フレーズを出力します。-cp オプションを指定しておらず、CLASSPATH 環境変数もありません。したがって、ユーザーのクラスパスは現在のディレクトリにのみ制限されます。
これで、コンパイルは見事に機能します。
rustam@rustam-laptop:~/temp/bird_test$ javac Sparrow.java
このコマンドは、必要な .class ファイルを生成します。.class ファイルを実行しようとすると、奇妙なことが起こります。次のコマンドはうまく機能します。
rustam@rustam-laptop:~/temp/bird_test$ java Sparrow
しかし、次のコマンドを試すと
rustam@rustam-laptop:~/temp/bird_test$ java ./Sparrow
次のエラーが表示されます。
Error: Could not find or load main class ..Sparrow
なんてこった!シンボル ./ は現在のディレクトリを参照していると思いました。