title: JasperReports: getting "java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory" Exception
body: <p>I have created a report (<em>JasperReports 5.5</em>) using the <em>JasperReports plugin</em> for <em>NetBeans 6.9.1</em> (<em>Java 1.6</em>). I can create a report and the report can be successfully viewed using the Preview tab of the <em>JasperReports Plugin</em>. But when I use <em>Java</em> code to access the  report it gives the following Error:</p>
  
  <pre><code>Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
      at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
      at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
      at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272)
      at net.sf.jasperreports.engine.util.JRLoader.&lt;clinit&gt;(JRLoader.java:68)
      at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
      at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
      at net.sf.jasperreports.engine.DefaultJasperReportsContext.&lt;init&gt;(DefaultJasperReportsContext.java:71)
      at net.sf.jasperreports.engine.DefaultJasperReportsContext.&lt;clinit&gt;(DefaultJasperReportsContext.java:59)
      at net.sf.jasperreports.engine.JasperCompileManager.getDefaultInstance(JasperCompileManager.java:84)
      at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:459)
      at Interfaces.MainMenu.jMenuItem3ActionPerformed(MainMenu.java:854)
      at Interfaces.MainMenu.access$1300(MainMenu.java:50)
      at Interfaces.MainMenu$14.actionPerformed(MainMenu.java:494)
      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
      at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
      at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
      at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
      at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
      at java.awt.Component.processMouseEvent(Component.java:6288)
      at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
      at java.awt.Component.processEvent(Component.java:6053)
      at java.awt.Container.processEvent(Container.java:2041)
      at java.awt.Component.dispatchEventImpl(Component.java:4651)
      at java.awt.Container.dispatchEventImpl(Container.java:2099)
      at java.awt.Component.dispatchEvent(Component.java:4481)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
      at java.awt.Container.dispatchEventImpl(Container.java:2085)
      at java.awt.Window.dispatchEventImpl(Window.java:2478)
      at java.awt.Component.dispatchEvent(Component.java:4481)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
      at java.awt.EventQueue.access$000(EventQueue.java:84)
      at java.awt.EventQueue$1.run(EventQueue.java:602)
      at java.awt.EventQueue$1.run(EventQueue.java:600)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
      at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
      at java.awt.EventQueue$2.run(EventQueue.java:616)
      at java.awt.EventQueue$2.run(EventQueue.java:614)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
   Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
      ... 51 more
  </code></pre>
  
  <p>When I add the mentioned JAR file it gives the same error with a different JAR and it goes on and on.</p>
  
  <p>I have used the following code to access the report.</p>
  
  <pre><code>try {
          String report = "C:\\Users\\Admin\\Documents\\WarrantReport.jrxml";
          JasperReport jr = JasperCompileManager.compileReport(report);
          JasperPrint jp = JasperFillManager.fillReport(jr, null, c);
          JasperViewer.viewReport(jp);
      } catch (JRException ex) {
          Logger.getLogger(MainMenu.class.getName()).log(Level.SEVERE, null, ex);
      }
  </code></pre>
  
  <p>I have added the following 5 JAR files to my Project folder Libraries:<br/>
  jasperreports 5.5 applet, fonts, functions, javaflow.</p>
  
  <p>Please help me find the error.</p>