Java Log4J不工作,并抛出ClassNotFoundException

Java Log4J不工作,并抛出ClassNotFoundException,java,log4j,Java,Log4j,我试图理解log4j,而Java讲师只给出了很少的说明。这就是我所做的 我创建了一个Java项目,并在main方法中添加了一些代码 2增加了外部jar log4j-core-2.11.1.jar和log4j-api-2.11.1.jar 3新增进口: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 4在我的主类中添加了以下内容 private static final Log

我试图理解log4j,而Java讲师只给出了很少的说明。这就是我所做的

我创建了一个Java项目,并在main方法中添加了一些代码

2增加了外部jar log4j-core-2.11.1.jar和log4j-api-2.11.1.jar

3新增进口:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
4在我的主类中添加了以下内容

private static final Logger logger = LogManager.getLogger();
这就是我被困的地方

我得到的例外是:

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
at com.test.JavaProgram.<clinit>(JavaProgram.java:22)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
..
目前我没有时间理解Log4j或eclipse。我做错了什么

编辑:当我以“作为Java应用程序运行”的方式运行程序时,会弹出一个窗口“选择Java应用程序”,并要求我输入“选择类型?”=任何字符…: 单击“确定”时,将显示以下内容:

Usage: java 
org.apache.logging.log4j.core.tools.Generate$CustomLogger className LEVEL1=intLevel1
       Where className is the fully qualified class name of the custom/extended logger
       to generate, followed by a space-separated list of custom log levels.
       For each custom log level, specify NAME=intLevel (without spaces).

我知道Maven更简单,但我不得不使用它

为什么不能使用这些简单的步骤呢。只是将log4j作为依赖项添加到Pom.xml中。

您的第2步有问题吗?您是否将JAR同时添加到编译和运行时类路径中?这就是我所做的。属性>>Java构建路径>>库>>添加外部JAR并添加两个JAR显示您正在运行程序吗?都作为Java应用程序运行,并且运行配置不起作用。。。所以你只运行正确的类,你的类。并且您的类不是打印使用情况输出的类。但是你得到了使用输出,这让我认为程序不会继续执行,你得到了类NotFoundException。。。这里有什么问题?这并不复杂:将JAR添加到eclipse项目的构建路径中,确保JAR具有正确的类,运行正确的主类。如果你得到了CNFE,那么你错过了罐子或者罐子是不正确的。如果您得到了使用输出,那么您正在运行一些您没有编写的东西。我知道!但我的导师说maven下周才开始上课。这需要从本周开始完成。不管怎样,我如何才能将现有程序转换为Maven版本?
Usage: java 
org.apache.logging.log4j.core.tools.Generate$CustomLogger className LEVEL1=intLevel1
       Where className is the fully qualified class name of the custom/extended logger
       to generate, followed by a space-separated list of custom log levels.
       For each custom log level, specify NAME=intLevel (without spaces).