クラウドで 伸びる人沈む人 |
|
|
|
NoClassDefFoundErrorへの対処
<IT技術の処方箋:NoClassDefFoundErrorへの対処> もし、自分でつくったプログラムで、 「NoClassDefFoundError」というエラーが出たとしましょう。 例えば、以下のようなかんじです。 C:\java>java HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld エラーの原因として、考えられる理由は二つです。 まずは、HelloWorldのスペルはあっていますか? HelloWorld.classというファイルが本当に存在しますか? 次に考えられるのが、クラスパスです。 クラスパスの詳細は省きますが、 かりに、 C:\java>java -classpath c:\java HelloWorld Hello World! として、うまくいくようなら、間違いなくクラスパスの問題です。 クラスパスとは、HelloWorld.classファイルがどこのディレクトリに存在するかを教える仕組みです。 上の例でいうと、-classpath c:\java とすることで、 c:\javaディレクトリに、HelloWorld.classファイルが 存在しますよ、と明示的に示しています。 ちなみに、↓でも同じ結果になります。 C:\java>java -classpath . HelloWorld Hello World! こちらの場合は、-classpath . が、現在(カレント)の ディレクトリを表します。 あと他の理由としては、 packageを無視していることも考えられます。 例えば、 C:\workspace\test\bin\info\searchman\HelloWorld.class があって、 HelloWorldのpackageが info.searchmanとするなら、 以下のような感じで実行できるはずです。 cd c:\workspace\test\bin C:\workspace\test\bin>java info/searchman/HelloWorld ※参考 一番簡単なJavaの実行は、↓を参照。 http://www.searchman.info/java_eclipse/1010.html なお、クラスパスを環境変数として設定する場合は、 以下を参照しましょう。 http://www.searchman.info/tips/1570.html |