繁体   English   中英

log4j:使用jar写入日志文件

[英]log4j: Write to a log file with a jar

我正在尝试使用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/

有人可以帮忙吗?

当然。 您的问题是执行时需要包括log4j.jar库。 您可以通过以下两种方式之一进行操作:

  • 手动:如果在Eclipse中运行jar,则足以执行Run As> Run Configurations ...> classpath> Add JARS(或外部JAR)并选择log4j.jar

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

    Class-Path: log4j.jar

(请参阅Oracle文档 )。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM