java - 在 linux 上运行 jar 文件时出现此错误 - 线程“main”java.lang.NoClassDefFoundError: org/apache/log4j/Logger 中的异常
问题描述
我创建了一个 java 项目,当我从 NetBeans 运行它时,它可以正常运行并执行预期的操作,但是当我将它移到 Linux 服务器上时,它给了我这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at arhivare.Arhivare.<clinit>(Arhivare.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
它必须与我在项目中包含的 log4j 库有关(它在 Netbeans 中运行)。我错过了什么?
解决方案
public static final Logger logger = Logger.getLogger(Arhivare.class);
这就是我初始化 Logger 的方式,运行应用程序的命令是:java -jar ArhivareProd.jar
推荐阅读
- javascript - 使用三个文本框进行自定义验证
- javascript - 创建一个可以被多个组件读取和更新的共享日期服务
- sql - 索引列和日期列之间查询分区的性能
- delphi - 什么是绘制和平滑抗锯齿绘制对象并移动它们的最佳方法
- azure-devops - 如何将软件包安装到 Scrip 文件夹
- groovy - 在 SOAPUI 中使用 Groovy,是否可以生成没有连字符的 GUID?
- firebase - oauth 和 Invites 在我的 google-services.json 中做了什么?
- c# - 值与引用类型 - 为什么两者都存在?
- bash - Docker exec linux终端创建别名
- react-native - 当我离开并返回选项卡时,我的列表组件消失了