質問: 現在Javaの勉強をしているのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: sample1 のエラーメッセージが出て、ネット検索でここにたどり着きました。 --------------sample.javaファイル--------------- D:\WORK\sample1\sample1.java -- class sample1 { public static void main(String args[]) { System.out.println("HelloWorld"); } } ----------------------------------------------- なお、コンパイル/実行はDOSで行っています。 コンパイルはうまくいくので、sample1.classファイルが作成されています。 D:\work\sample1\sample1.java D:\work\sample1\sample1.class DOSで、D:\work\sample1へ移動し、 java sample1 で実行すると、下記エラーが出ます。 Exception in thread "main" java.lang.NoClassDefFoundError: sample1 ここで、 java -classpath . sample1 で実行すると、正常に実行されるのですが、これって環境変数でクラスパスを指定しなくてはいけないのでしたっけ? 実は、OSを1回再インストールしておりまして、J2SDKもすべて再インストしなおしております。それまでは、クラスパス指定なしで java sample1 だけで実行できていたのですが... どなたか、ピンと来た方がいらっしゃいましたらご教示お願いします。 なお、OS再インスト前の状況と比べると、今回はEclipseをインストールしているってところくらいの違いだと思います。
回答: mioさん、ありがとうございます。 環境変数でクラスパス指定することにします。 ただ、 java sample1 だけで実行出来た理由がわからないのが気になります。 もう一度いろいろ調べてみます。 ありがとうございました。