NoClassDefFoundError
Javaの実行環境を整えて、いざコンパイル!そして実行…と思ったのに、
"NoClassDefFoundError"
というエラーが出てしまってコンパイルできない…。そんな初心者の一助となることを願って、ここに記す。グィンハム=アイアンハ(ry
さて、各種サイトでの指示通りに環境を整えたのに上のようなエラーが出てしまった場合、パソコンが「コンパイルで作られたはずのclassファイルが見つからないよ~」と言ってるわけですから、その場所を指定してあげればよいです。具体的には、
java -classpath <directory> <class>
もしくは「.」によって現在開いているフォルダが指定できるので、
java -classpath . <class>
としてあげればよいです。こうすれば、「classどこ~」「目の前にあるじゃんwww」「うはwwwおkwww」となるわけです!ただ、実行する度に指定するのは面倒ですから、環境変数としてCLASSPATHというものを用意し、
.;%JAVA_HOME%\lib\tools.jar
という値を与えておきます(もしかしたら、「;」以降はいらないかも)。そうすると、
java <CLASS>
だけでおk。
…なお、以下のサイト様を参考にしました(リンク先はトップページではなく、該当する内容が記載してあるページです)。「Search Man」さんには、NoClassDefFoundErrorの詳細が分かりやすく書いてあります。でもなぜか環境変数の設定へはリンク切れ。そこらへんについては「JavaでHello World!」。Classpathも含めた環境構築の詳細が分かりやすく書いてあります。
というわけでようやく試験明けです。自分乙。
2月頃から「自分でゲームを作ってみたい!」と強く思っていたので、学校でかじったことのあるJavaを一から復習してみることにしました。以前にリアフレがやっていたこともあるC言語に手を出してみようとも思ったのですが、なんだか敷居が高そうだし、この際Javaをしっかりと身につけようと決意。というかC言語の方が実用的なんでしょうけど、C++やJavaみたいなオブジェクト指向言語という概念も真面目に理解してみたかったし。
Javaの環境は学校でやっていた頃に整えたはずなんですけど、なぜかこのエラーに苦しめられました。再インストールの繰り返しや試行錯誤の末に、やっと原因解明。昔はCLASSPATHの設定はいらなかったと思うのですが、なんでうまくいかなくなったんだろう。多くのサイトで紹介されているJ2SE 1.4.2じゃなくてJ2SE 5.0を導入したせいかもしれないけど、最初に入っていたのはJ2SE 1.4.2だったはずだから違うと思うんだよね…。Windowsのパッチか何かのせいかなぁ?
それにしても、Meadowとかいうエディタの導入とかも含めて、ほぼ丸一日かかっちゃいました。普段はあんまり意識しないけど、少しでも細かい設定をいじる必要が出てくると、パソコンって奥が深いと思いました。つーか面倒wむしろウザいw
ちなみに、Java 2 Platform Standard Edition(J2SE)のトップページはこちらです。5.0も1.4.2も落とせます。なぜか1.4.2の方にしかリンクしていないサイトが多いような気がしたので、不便だからメモしときますw
コメント・トラックバック
この記事へのコメント・トラックバックはありません.
現在,この記事へのコメント・トラックバックは受け付けておりません.