web-dev-qa-db-ja.com

#Java.lang.NoClassDefFoundError:org / Apache / commons / digester / Digester

Java.lang.NoClassDefFoundError: org/Apache/commons/digester/Digesterエラーが発生し、1か月以上このエラーが発生します。利用可能なすべてのDigesterバージョンを試してみました。また、クラスパスでJARの重複がないか確認しました。

私はiReport-5.6.0を使用してレポートを設計し、iReport-5.6.0\ireport\modules\extのJARとその他の必要なJARを使用しました。

エラーログ:

Exception in thread "main" Java.lang.NoClassDefFoundError: org/Apache/commons/digester/Digester
    at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.Java:108)
    at net.sf.dynamicreports.examples.JasperMongoDBConnection.main(JasperMongoDBConnection.Java:30)
Caused by: Java.lang.ClassNotFoundException: org.Apache.commons.digester.Digester
    at Java.net.URLClassLoader$1.run(Unknown Source)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(Unknown Source)
    at Sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    at Java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more
8

NoClassDefFoundErrorがスローされた場合、必要なjarがクラスパスに適切にロードされていることを確認する必要があります。または、バージョンが混在しており、クラス名が異なる(またはその動作)可能性があります。追加するDigester jarが必要かどうかを確認してください。

これらのjarが正しく読み込まれているかどうかを確認します。

jasperreports-.jar;
jasperreports-javaflow.jar;
commons-beanutils.jar;
commons-collections.jar;
commons-logging.jar;
commons-digester.jar

Eclipseインスタンスの下のjasperレポートプラグインフォルダーを見てください。このフォルダー内でcommonsダイジェスターjarを検索し、同じjar(およびリストされているjarの他のjar)をプロジェクトにコピーします。

7
exoddus