遇到问题 运行 Log4J HelloWorld 示例,出现 "package does not exist" 错误

Having trouble running Log4J HelloWorld example, getting the "package does not exist" error

我在处理 Log4J 示例时遇到问题 运行。我不确定这是配置问题还是编码问题。这是我的示例代码:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Level;

public class HelloWorldLog4J {

    private static final Logger logger = LogManager.getLogger("HelloWorld");


    public static void main(String[] args) {

        System.out.println("pre_loggerDOTinfo");
        System.out.println();
        //logger.setLevel(Level.FATAL);   //used to be.. 

        logger.info("Hello, this is an INFO message");
        logger.warn("Hello, this is an WARN  message");
        logger.fatal("Hello, this is an FATAL  message");
        logger.fatal("Hello, this is an FATAL  message ALSO, #2");
        logger.debug("Hello, this is an FATAL  message");


        logger.info("Hello, this is an INFO message");
        System.out.println();
        System.out.println("post_loggerDOTinfo");

    }



}

但是当我 运行 这个时,我得到以下错误:

C:\Users\Adel\JavaCoding>javac HelloWorldLog4J.java
HelloWorldLog4J.java:1: error: package org.apache.logging.log4j does not exist
import org.apache.logging.log4j.LogManager;
                               ^
HelloWorldLog4J.java:2: error: package org.apache.logging.log4j does not exist
import org.apache.logging.log4j.Logger;
                               ^
HelloWorldLog4J.java:3: error: package org.apache.logging.log4j does not exist
import org.apache.logging.log4j.Level;
                               ^
HelloWorldLog4J.java:7: error: cannot find symbol
    private static final Logger logger = LogManager.getLogger("HelloWorld");
                         ^
  symbol:   class Logger
  location: class HelloWorldLog4J
HelloWorldLog4J.java:7: error: cannot find symbol
    private static final Logger logger = LogManager.getLogger("HelloWorld");
                                         ^
  symbol:   variable LogManager
  location: class HelloWorldLog4J

我相信我的类路径设置正确,我设置了 3 个变量:

LOG4J_HOME - %log4j-api%;%log4j-core%

log4j-api - C:\apache_log4j_beta5\apache-log4j-2.0-beta5-bin\log4j-api-2.0-beta5-sources.jar

log4j-core - C:\apache_log4j_beta5\apache-log4j-2.0-beta5-bin\log4j-core-2.0-beta5-sources.jar

这是我的目录结构(full-image link):

我在想是不是 log4j 的版本不对?我的版本是这个: apa​​che-log4j-2.0-beta5-bin 和 I downloaded it from this link

感谢任何提示,谢谢

您需要在 运行 javac 之前将 log4j jar 添加到您的 CLASSPATH 变量中。或者,您可以使用 -cp 选项在此处指定路径。

javac -cp <path> HelloWorldLog4J.java

其中路径是 log4j jar 的绝对路径,每个路径由冒号字符 (:) 分隔。使用 cp 选项时还应该包括当前目录,这由句点字符 (.)

表示

编辑:您想要引用包含 log4j 的 class 文件的 jar 文件,而不是 java 文件,例如log4j-core-2.0-beta5.jar,不是 log4j-core-2.0-beta5-sources.jar.