web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:org.Apache.log4j.Level

Swingアプリケーションでhibernate 3.5.1 finalを使用しようとしていますが、使用しているjarは次のとおりです。

  • hibernate-core-3.5.1-Final
  • hibernate-entitymanager-3.5.1-Final
  • hibernate-jpa-2.0-api-1.0.0.Final
  • hibernate-annotations-3.5.1-Final
  • hibernate-commons-annotations-3.2.0.Final
  • dom4j-1.6.1
  • slf4j-api-1.6.4
  • slf4j-log4j12-1.6.4

アプリケーションを実行しようとすると、次のエラーが表示されます。

Failed to instantiate SLF4J LoggerFactory
Reported exception:
Java.lang.NoClassDefFoundError: org/Apache/log4j/Level
    at org.slf4j.LoggerFactory.bind(LoggerFactory.Java:128)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.Java:108)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.Java:279)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.Java:252)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.Java:265)
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.Java:165)
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.Java:127)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.Java:54)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.Java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.Java:32)
    at com.xeno.xecamp.desktopManagement.Main.main(Main.Java:16)
Caused by: Java.lang.ClassNotFoundException: org.Apache.log4j.Level
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:248)
    ... 11 more
Exception in thread "main" Java.lang.NoClassDefFoundError: org/Apache/log4j/Level
    at org.slf4j.LoggerFactory.bind(LoggerFactory.Java:128)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.Java:108)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.Java:279)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.Java:252)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.Java:265)
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.Java:165)
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.Java:127)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.Java:54)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.Java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.Java:32)
    at com.xeno.xecamp.desktopManagement.Main.main(Main.Java:16)
Caused by: Java.lang.ClassNotFoundException: org.Apache.log4j.Level
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:248)
18
Mahmoud Saleh

また、クラスパスにLog4J JARファイルを含める必要があります。

ご了承ください slf4j-log4j12-1.6.4.jarは、SLF4J APIを介してLog4Jを使用できるようにするための唯一のアダプターです。 Log4Jの実際の実装は含まれていません。

37
Jesper

log4j をダウンロードして、クラスパスに追加する必要があります。

5
elias

私の環境では、2つのファイルをクラスパスに追加しました。そして、うまくいきました。

slf4j-jdk14-1.7.25.jar
slf4j-api-1.7.25.jar
0
wenchunl