当我试图运行我创建的jar文件时出现此错误:“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Appender

当我试图运行我创建的jar文件时出现此错误:“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Appender,log4j,noclassdeffounderror,appender,Log4j,Noclassdeffounderror,Appender,当我尝试运行为java应用程序创建的jar文件时,我遇到了一个异常。我使用log4j进行日志记录,并创建了一个自定义日志来记录每个cron作业的事务。 然后我编写了一个shell脚本,在其中调用jar文件。我已将属性文件放在jar文件之外 我正在通过shell脚本运行jar文件。我使用的命令是 java-jarapp.jar$1 java应用程序有2个属性文件 1) app.properties 2) 子日志4j.properties 子日志4j属性文件包含如下数据: log4j.appende

当我尝试运行为java应用程序创建的jar文件时,我遇到了一个异常。我使用log4j进行日志记录,并创建了一个自定义日志来记录每个cron作业的事务。 然后我编写了一个shell脚本,在其中调用jar文件。我已将属性文件放在jar文件之外

我正在通过shell脚本运行jar文件。我使用的命令是 java-jarapp.jar$1

java应用程序有2个属性文件 1) app.properties 2) 子日志4j.properties

子日志4j属性文件包含如下数据:

log4j.appender.log=package.CustomFileAppender log4j.appender.log.File=/serverpath/error.log

我有一种直觉,因为package.CustomFileAppender,我得到了错误。它是app.jar中的一个java文件,但我不知道如何创建自定义appender并在外部属性文件中使用它

   Exception in thread "main" java.lang.NoClassDefFoundError:    org/apache/log4j/Appender
   at java.lang.Class.getDeclaredMethods0(Native Method)
   at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
   at java.lang.Class.getMethod0(Class.java:2856)
   at java.lang.Class.getMethod(Class.java:1668)
   at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
   at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Appender
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

我得到这个错误是因为我没有正确构建jar文件。我所做的就是创建了一个可执行的jar文件,并在创建jar时复制了源代码。这就是问题的解决方法。

我之所以出现此错误,是因为我没有正确构建jar文件。我所做的就是创建了一个可执行的jar文件,并在创建jar时复制了源代码。这就是问题的解决方法。

您能否详细说明如何运行程序(java命令行、ant、maven…)以及项目的结构(库目录,哪些文件添加到库…)有了这些信息,就有可能知道你是否遗漏了什么。我们可以看看你的设置吗?@FredericHenri我正在通过shell脚本运行jar文件。我使用的命令是:java-jarapp.jar$1@frenchDolphin我已经编辑了我的问题并添加了更多细节。你知道我为什么会出现这个错误吗?你能详细说明你如何运行你的程序(java命令行,ant,maven…)和你的项目结构(库目录,哪些文件添加到库…)有了这些信息,就有可能知道你是否遗漏了什么。我们可以看看你的设置吗?@FredericHenri我正在通过shell脚本运行jar文件。我使用的命令是:java-jarapp.jar$1@frenchDolphin我已经编辑了我的问题并添加了更多细节。你知道我为什么会出现这个错误吗?