【问题标题】:How to add log4j.properties and log4j.jar to executable jar..?如何将 log4j.properties 和 log4j.jar 添加到可执行 jar..?
【发布时间】:2015-04-04 07:37:29
【问题描述】:

我有以下文件夹结构...

MyApp
      |com
      |lib
          |--- log4j-1.2.17.jar,mysqlconn.jar,jcalendar-1.4.jar,poi-3.9.jar
      |prop
          |---log4j.properties
      |manifest.txt

manifest.txt:

 Main-Class: com.java.test.WelcomeScreen
 Class-Path: prop lib/jcalendar-1.4.jar lib/log4j-1.2.17.jar lib/mysql-connector-java-5.0.8-bin.jar lib/poi-3.9.jar 

我正在创建可执行 jar 如下:

 C:\Users\Administrator\Desktop\MyApp>jar -cvfm myapp.jar manifest.txt com/java/test/*.class com/java/db/*.class

然后运行:

C:\Users\Administrator\Desktop\MyApp>java -jar myapp.jar

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at com.java.test.LoginForm.<clinit>(LoginForm.java:17)
        at com.java.test.WelcomeScreen.main(WelcomeScreen.java:134)
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)
        ... 2 more

【问题讨论】:

  • 清单中是否应该包含log4j-1.2.15.jar 而不是log4j-1.2.17.jar
  • 抱歉是拼写错误
  • 我需要在 manifest.txt 中给出“prop/log4.properties”而不是“prop”吗?
  • 在清单末尾添加一个空行,然后重试。 prop 对我来说似乎很好,因为您将该目录添加到类路径
  • 哦,我在 manifest.txt 中添加了空行,它现在可以工作,但它没有找到 log4.properties 文件,给出“log4j:WARN 请正确初始化 log4j 系统。”

标签: java jar log4j


【解决方案1】:

您需要在清单末尾添加一个空行。 也可以只包括您的log4j.properties 所在的目录。 我将建议将 log4.properties 放在与主 jar 文件相同的路径中并添加“。”到类路径。但看起来像在目录末尾添加一个/ 就像OP 发现的那样。

【讨论】:

  • 我可以在 manifest.txt 中存储 jar 文件和 log4.properties 的绝对路径,以便可以将可执行的 jar 文件保存在任何地方,用户只需双击即可启动应用程序吗?
猜你喜欢
  • 2014-04-07
  • 2012-08-08
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 2021-06-25
  • 1970-01-01
  • 2019-09-10
相关资源
最近更新 更多