スレッド メイン Java.Lang.NoClassDefFoundError での例外
-
Java の
スレッドメインjava.lang.NoClassDefFoundError での例外 -
Java での
スレッド "main" java.lang.NoClassDefFoundError での例外の原因 -
Java での
スレッド "main" java.lang.NoClassDefFoundError での例外の解決策
本日の投稿では、Java の main スレッドで発生した java.lang.NoClassDefFoundError についてお話しします。 しかし、それに入る前に、java.lang.NoClassDefFoundError が何を意味するのかを理解する必要があります。
Java のスレッドメインjava.lang.NoClassDefFoundError での例外
java.lang.NoClassDefFoundError は、アプリケーションのコードまたは使用している外部ライブラリが、オープン ソースのロギング ライブラリである SLF4J ライブラリを使用しようとしていることを示します。
それでも、必要なライブラリを見つけることができないため、そうすることができません。 このため、java.lang.NoClassDefFoundError という名前の例外が main スレッドでスローされています。
Java プログラムは現在のディレクトリにあるクラス ファイルのみを検索するため、クラス ファイルが現在のディレクトリにない場合は、それを classpath に追加する必要があります。
この問題の解決策は、これを置くことです。 クラスファイルは、classpath で見つけることができます。
クラス ファイルが jar ファイル内に含まれている場合は、jar ファイルを classpath に含める必要があります。 Classpath は、絶対パスまたは完全パスにすることも、ディレクトリに関連付けられた相対パスにすることもできます。
Classpath はシステム全体の環境変数で、設定すると、システムは特定のフォルダにあるクラス ファイルに移動します。
Java での スレッド "main" java.lang.NoClassDefFoundError での例外 の原因
以下は、さまざまな Java プログラムの main スレッド java.lang.NoClassDefFoundError で例外をトリガーした典型的な原因です。 あなたが経験している問題は、これらの理由の 1つである可能性が非常に高いです。
-
classpathの無効なエントリ -java-jarコマンドを使用して Java プログラムを実行する場合、manifestファイルのClassPathプロパティにはそのクラスの定義が含まれていません。 これは、例外の考えられる結果の 1つです。 -
環境に関連する問題 -
java.lang.NoClassDefFoundErrorの異常な原因に遭遇しました。 Java で作業している場合、この例外が発生し続けます。ある特定の例では、Java プログラムを起動するシェル スクリプトの 1つが、
CLASSPATH環境変数の値を変更しました。これにより、Java アプリケーションが正しく起動しませんでした。 したがって、
java-classpathコマンドを使用して Java アプリケーションを起動し、classpathに含めるJARファイルのリストを提供して、開始スクリプトでclasspathを指定する必要があります。 -
classpathにJARファイルがない - この問題の最も簡潔な説明は、.jarファイルがclasspathに含まれていないことです。 そのJARをclasspathに含めるとすぐに、この問題は発生しなくなります。検索リソース Ctrl+R などのキーボード ショートカットを使用して、Eclipse で特定のクラスが属している
JARファイルを特定できます。クラスが属する
JARファイルを特定したら、そのJARがclasspathに存在するかどうかを調べることができます。
-
クラス・ローダーのオーバーライド - 親クラス・ローダーからクラス・ロードのリクエストがあり、子クラス・ローダーがリクエストされたクラスをロードしようとします。
親クラスローダーがクラスをロードすると、子クラスローダーはそれを見ることができますが、逆に、親クラスローダーは子クラスローダーが何をロードしたかを知りません。
Java での スレッド "main" java.lang.NoClassDefFoundError での例外 の解決策
-
Windows で発生する例外を修正できるように、
CLASSPATH環境変数を構成する必要があります。classpathを確立するには、次の設定を構成する必要があります。set CLASSPATH = % CLASSPATH % ; .;%CLASSPATH%は追加する既存のclasspathを意味し、現在プログラムが実行されているディレクトリを参照します。 -
プロジェクトのビルド パスを設定する必要があります。
Projectタブを右クリックし、Propertiesを選択し、続いてJava Build Pathを選択し、フォルダ セット ソース内のjarsまたはクラスのライブラリを選択することでカスタマイズできます。 -
jarファイルがclasspathにない場合、例外がサーバーに現れます。 この問題を解決するには、スタック トレース全体を調べて、不足しているjarファイルの名前を特定し、それをサーバーのclasspathまたはアプリケーションのclasspathに追加してみてください。 -
このクラスを使用するには、クラス自体、またはそれを提供する
.jarファイルをjava``classpathに含める必要があります。.を入力する必要があります。 コマンドラインから実行するときはいつでもJavaクラス名の先頭に。
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn