gpt4 book ai didi

java - 如何将 log4j 与 Maven 和可执行 jar 文件一起使用?

转载 作者:行者123 更新时间:2023-11-29 03:33:39 25 4
gpt4 key购买 nike

我试图让 log4j 在一个简单的应用程序中工作,但我收到消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger

我用命令执行应用程序:

java -jar lunchtracker-1.0-SNAPSHOT.jar

log4j.properties 文件位于 src/main/resources 中。这是我的 pom.xml:

<project <snip -- was messing up formatting>>
<modelVersion>4.0.0</modelVersion>
<groupId>net.uofitorn</groupId>
<artifactId>lunchtracker</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>lunchtracker</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>net.uofitorn.LunchTrackerServer</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

这是我的java代码:

import org.apache.log4j.Logger;
<snip>
Logger logger = Logger.getLogger(LunchTrackerServer.class.getName());
logger.debug("Server started");

我认为问题是我的 jar 文件中没有包含 log4j jar。当我解压缩 jar 时,我看不到它。我如何让 Maven 在我的 jar 中包含 log4j 依赖项?

最佳答案

您需要在运行时提供log4j 依赖,并提供您需要将log4j Artifact 与您的jar 一起打包,Here is how you can create fat jar

关于java - 如何将 log4j 与 Maven 和可执行 jar 文件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16640478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com