Java 在Log4j 2.0中发现ClassNotFoundException

Java 在Log4j 2.0中发现ClassNotFoundException,java,log4j,Java,Log4j,im已经为log4j12-api-beta2.jar设置了构建路径,但是它给出了 以下错误请帮助我解决此问题 我的代码如下 java文件: package com.sst.log4j; class Product { private int productId; private String productName; public int getProductId() { return productId; } public void setProductId(int product

im已经为log4j12-api-beta2.jar设置了构建路径,但是它给出了 以下错误请帮助我解决此问题
我的代码如下 java文件:

package com.sst.log4j;

 class Product {
private int productId;
private String productName;
public int getProductId() {
    return productId;
}
public void setProductId(int productId) {
    this.productId = productId;
}
public String getProductName() {
    return productName;
}
public void setProductName(String productName) {
    this.productName = productName;
}
public Product(int productId, String productName) {
    super();
    this.productId = productId;
    this.productName = productName;
}



 }
我的主()文件是:

它给出了以下例外情况:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/
 log4j/LogManager
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.apache.log4j.LogManager.getLogger(LogManager.java:38)
at com.sst.log4j.ProductMain.main(ProductMain.java:14)
    Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 14 more

我刚从这里下载了log4j 2.0:

我还没有使用它,但看起来您可能需要类路径上的
log4j-api-2.0-beta2.jar
log4j-core-2.0-beta2.jar
。我猜api jar是可以编译的,核心包含了实现

VenkyMCA

您需要导入以下软件包才能使用log4j 2.0

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
它们会很好地工作

您使用的是IDE(例如Eclipse)吗?您是否通过运行代码(而不是在编译代码时)获得stacktrace

这里只是一个粗略的猜测,但您可能只是在设置构建路径(这样您的项目就可以正常编译),但运行时的类路径没有log4jjar

在Eclipse中,您可以导出JAR文件,以便它在运行时可用

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