log4j:使用jar写入日志文件

时间:2016-10-15 08:48:04

标签: java eclipse jar log4j

我正在尝试使用log4j将日志打印到日志文件中。它完美地运作。但是当我将项目导出为jar文件并运行它时,我收到错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at com.mkyong.HelloExample.<clinit>(HelloExample.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

项目结构如下https://www.mkyong.com/logging/log4j-hello-world-example/

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

科西嘉。您的问题是您需要在执行时包含log4j.jar库。您可以通过以下两种方式之一完成:

  • 手动:如果在Eclipse中运行jar,则执行Run As&gt;就足够了。运行配置...&gt; classpath&gt;添加JARS(或外部JAR)并选择log4j.jar

  • 自动:在META-INF/MANIFEST.MF文件中包含类路径声明:

    Class-Path: log4j.jar

(参见Oracle documentation)。

这种方式的优点是,即使执行Eclipse,您也不必在执行时包含库。但请记住将log4.jar与您自己的jar一起分发。