レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
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
さらに補講教材があります。
以下をクリックしてください。

新人用Java勉強環境の準備

Servlet初心者が勘違いする「典型的な間違い」

クラウドで伸びる人沈む人 ||Copyright © 2005-2020 SearchMan,All Rights Reserved.