• 締切済み

Exception in thread "main" java.lang.NoClassDefFoundError: Hello

Javaでコンパイルは通るのですが、実行すると。 Exception in thread "main" java.lang.NoClassDefFoundError:Hello が出ます。 色々調べて、「java -classpath . Hello」または「set classpath=.;%classpath%」とすると実行できることが分かりました。 以前は、このような入力をしなくても実行できたのですが、何が原因なのでしょうか? また、この「Classpath」とは何ですか? 環境設定をするとコマンドラインからの実行ファイル名を入力するだけで実行できる(あってるのかな?)事は分かりますが、これは何なのでしょうか?環境設定とは異なる話なのでしょうか?

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

カレントディレクトリ . へのパスが必要になったようですが、環境変数でClasspathが設定されていると、カレントディレクトリに検索は行われなくなります。環境変数の方に . を追加しておく必要があります。 URLの「Java 2のクラス検索順序」を見て下さい。

参考URL:
http://www.alles.or.jp/~torutk/oojava/maneuver/1998/11-1.html