gpt4 book ai didi

java - 从 cmd 运行代码时出现错误 : package org. apache.log4j 不存在

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:35 26 4
gpt4 key购买 nike

在运行 javac Main.java 命令时,我收到 package org.apache.log4j 不存在 错误。

public class Main {

private static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
BasicConfigurator.configure();

logger.info("in Main class");
}
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>groupId</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>

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

log4j.properties

log4j.rootCategory=debug,console
log4j.logger.com.demo.package=debug,console
log4j.additivity.com.demo.package=false

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.immediateFlush=true
log4j.appender.console.encoding=UTF-8

log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d [%t] %-5p %c - %m%n

我收到的错误消息是:

enter image description here

最佳答案

假设 1(错误):源类中没有发布导入 → 必须添加导入

看来您缺少import您的 Main 中的声明类(class)。试试这个:

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

public class Main {

private static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
BasicConfigurator.configure();

logger.info("in Main class");
}
}

真正的问题(在我修复了帖子中的图像显示之后)

您不是使用 maven 运行编译,而是使用命令行 javac 。如果没有 Maven,您就不会自动将依赖项添加到您的类路径中。

如果你想从命令行运行

在这种情况下,您必须将 log4j 添加到类路径中。它看起来像这样(从sources目录运行,默认maven布局中是<project_root>\src\main\java:

javac company/Main.java -cp %userprofile%\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar

我假设您的本地 Maven 存储库位于默认 Windows 路径 %userprofile%\.m2 中。如果它在其他部分(或Linux),则必须将路径更改为log4j-1.2.17.jar .

在本例中,类 Main.class将被编译到同一个包中 Main.class是。

如果你想用maven编译

只需运行 mvn compile从您的 pom.xml 所在的目录是。注意maven会将类编译成target目录,即您编译的类将位于类似 \target\classes\company\Main.class 的路径中(相对于您的项目根目录,即 pom.xml 所在的位置)。

关于java - 从 cmd 运行代码时出现错误 : package org. apache.log4j 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787747/

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