2017-09-05 39 views
0

私はlog4j2をNetbeansで動かそうとしています。どんなに私は何をすべきか、私は次のエラースレッド "main"の例外java.lang.NoClassDefFoundError:org/apache/logging/log4j/LogManager

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager 
at java.lang.ClassLoader.defineClass1(Native Method) 

...

Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)14 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 

を取得していない私はここ Setting up log4j2 指示に従うと、同じデモ・プログラムを実行しようとしています。

私は解決策を見つけようとしましたが、この投稿が見つかりました。 Similar Problem here

この投稿Class not foundは私の問題の正確な複製ですが、有効な回答は掲載されていません。

私はlog4j-core-2.8.2.jarとlog4j-1.2-api-2.8.2.jarをプロジェクトライブラリに追加しました。これらの2つのファイルは、メインsrcフォルダのサブフォルダにインストールされ、クラスパス上にあります。

Netbeansは新しいUbuntuビルドにインストールされています。残念なことは、Windowsマシンでこれを実行できることです。

私は、このlogdemoクラスだけで新しく新しいプロジェクトを作成しようとしました。 log4j2 jarファイルをライブラリに追加しました。また、実行> VMオプションボックスにコマンド-Dlog4j.configurationFile=/home/test/config/log4j2.xml を追加しました。

まだまったく同じエラーメッセージが表示されます。

インストールを確認しました。

[email protected]:~$ java -version 

Javaバージョン "1.8.0_144" のJava(TM)SEランタイム環境(ビルド1.8.0_144-B01) は、Java HotSpot(TM)64ビットサーバーVM(25.144-B01、混合モードを構築します)

この投稿はsetting Java Environment in Ubuntuに見つかりました。私はapt-getを使うと環境をセットアップすると思っていただろうが、間違っているかもしれない。

私は/ etc/environmentをチェックしました。そこにJavaの言及はありません。 .bash.rcにエクスポートされたjavaパスもありません。 /etc/profileにjavaがありません。

パスを設定できる場所は数多くあるようです。私はこの投稿を見つけたSetting PATH variables in Ubuntu。モダンで便利です。 はまた、私は〜/ .profileに

JAVA_HOME=/usr/lib/jvm/default-java 
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin 
export JAVA_HOME 
export PATH 

注デフォルト-Javaを使用私の家のプロファイルに以下の追加この記事Setting Java path variables in Ubuntu

を見つけました。これは、JDKへのシンボリックリンクです。次のバージョンにアップグレードすると、apt-getがリンクを変更することを願っています。

Ubuntuを再起動して問題が解決したかどうかを確認した後、変更はありません。
問題の原因を見つけるためのご提案を歓迎いたします。

答えて

0

私はWindows 10 PCにNetbeansをインストールしましたが、これと全く同じ症状があったので、問題はjarファイルでなければならないと考えました。

解決策が見つかりました。私はlog4j-core-2.8.2.jarとlog4j-1.2-api-2.8.2.jarをlog4j-api-2.3.jarとlog4j-core-2.3.jarの代わりに使用していました。

何らかの理由で2.3バージョンが動作し、2.8.2バージョンは動作しません。 jarファイルを変更すると、プログラムはコンパイルされ、Win 10とUbuntuの両方でエラーなく実行されました。

私はこれについて非常に迷惑です。私はJavaを学んでおり、その言語が気に入っていますが、コードを書くよりもはるかに時間をかけて問題を解決しています。デモプログラムはOKをコンパイルし、実行時にエラーを投げただけです。 Stackoverflowをこのような偉大なリソースにする経験豊富なプログラマーは、問題を見つけられませんでした。謎めいたエラーメッセージは、問題の根本原因にヒントを与えませんでした。これは難しいことではありません。それは非常にイライラしています。

関連する問題