ClassNotFoundException found in Log4j 2.0

♀尐吖头ヾ 提交于 2019-12-12 12:18:06

问题


im already set the build path for log4j12-api-beta2.jar but it gives the following error please help me to solve this problem
my code is follows java file:

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;
}



 }

and my Main() file is:

 package com.sst.log4j;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

public class ProductMain {

/**
 * @param args
 */
static Logger log=LogManager.getLogger(Product.class.getName());
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Product p1=new Product(1,"garlands");
    System.out.println(p1.getProductName());
    log.error(p1.getProductName());

}

}

it gives the following Exception:

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

回答1:


I just downloaded log4j 2.0 from here: http://logging.apache.org/log4j/2.x/download.html

I haven't used it yet, but looks like you probably need both log4j-api-2.0-beta2.jar as well as log4j-core-2.0-beta2.jar on the classpath. I'm guessing the api jar is so you can compile and the core contains the implementation.




回答2:


Are you using an IDE (e.g. Eclipse) and did you get the stacktrace from running your code (instead of while compiling it)?

Just a wild guess here, but you might just be setting build path (so your project will compile okay), but your classpath during runtime doesn't have the Log4J jars.

In Eclipse you can export a JAR file so that it would be available during runtime.




回答3:


VenkyMCA,

You need to import the below packages to work with log4j 2.0

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

And they will work fine.



来源:https://stackoverflow.com/questions/13308812/classnotfoundexception-found-in-log4j-2-0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!