title: How to solve error message Exception in thread "main" java.lang.NoClassDefFoundError: org/usb4java/Loader
body: <p>I'm trying to make use of usb4java and am getting a error when I run it. It compiles just fine and I have looked at my class path and it appears the usb4java jars are being included as you can see below.</p>
  
  <p>I'm currently on Windows 7, running Java 8, using usb4java-javax-1.2.0(<a href="http://usb4java.org/" rel="nofollow">http://usb4java.org/</a>).  And I'm getting the following error.  Any ideas on how to get past this?</p>
  
  <pre><code>"C:\Program Files\Java\jdk1.8.0\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.1.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\zipfs.jar;C:\Users\kim\IdeaProjects\USB_Test_Usb4Java\out\production\USB_Test_Usb4Java;C:\Users\kim\Downloads\usb4java-javax-1.2.0\lib\usb-api-1.0.2.jar;C:\Users\kim\Downloads\usb4java-javax-1.2.0\lib\usb4java-javax-1.2.0.jar;C:\Users\kim\IdeaProjects\USB_Test_Usb4Java\src\usb-api-1.0.2.jar;C:\Users\kim\IdeaProjects\USB_Test_Usb4Java\src\usb4java-javax-1.2.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main
  Exception in thread "main" java.lang.NoClassDefFoundError: org/usb4java/Loader
      at org.usb4java.javax.Services.&lt;init&gt;(Services.java:59)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
      at java.lang.Class.newInstance(Class.java:433)
      at javax.usb.UsbHostManager.createUsbServices(Unknown Source)
      at javax.usb.UsbHostManager.getUsbServices(Unknown Source)
      at Main.main(Main.java:89)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
  Caused by: java.lang.ClassNotFoundException: org.usb4java.Loader
      at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      ... 14 more
  
  Process finished with exit code 1
  </code></pre>
  
  <p>My Java code looks like this and is copied from the usb4java site.</p>
  
  <pre><code>import javax.usb.UsbConfiguration;
  import javax.usb.UsbDevice;
  import javax.usb.UsbEndpoint;
  import javax.usb.UsbException;
  import javax.usb.UsbHostManager;
  import javax.usb.UsbHub;
  import javax.usb.UsbInterface;
  import javax.usb.UsbPort;
  import javax.usb.UsbServices;
  import java.util.List;
  
  public class Main {
  
      /**
       * Dumps the specified USB device to stdout.
       *
       * @param device
       *            The USB device to dump.
       */
      private static void dumpDevice(final UsbDevice device)
      {
          // Dump information about the device itself
          System.out.println(device);
          final UsbPort port = device.getParentUsbPort();
          if (port != null)
          {
              System.out.println("Connected to port: " + port.getPortNumber());
              System.out.println("Parent: " + port.getUsbHub());
          }
  
          // Dump device descriptor
          System.out.println(device.getUsbDeviceDescriptor());
  
          // Process all configurations
          for (UsbConfiguration configuration: (List&lt;UsbConfiguration&gt;) device
                  .getUsbConfigurations())
          {
              // Dump configuration descriptor
              System.out.println(configuration.getUsbConfigurationDescriptor());
  
              // Process all interfaces
              for (UsbInterface iface: (List&lt;UsbInterface&gt;) configuration
                      .getUsbInterfaces())
              {
                  // Dump the interface descriptor
                  System.out.println(iface.getUsbInterfaceDescriptor());
  
                  // Process all endpoints
                  for (UsbEndpoint endpoint: (List&lt;UsbEndpoint&gt;) iface
                          .getUsbEndpoints())
                  {
                      // Dump the endpoint descriptor
                      System.out.println(endpoint.getUsbEndpointDescriptor());
                  }
              }
          }
  
          System.out.println();
  
          // Dump child devices if device is a hub
          if (device.isUsbHub())
          {
              final UsbHub hub = (UsbHub) device;
              for (UsbDevice child: (List&lt;UsbDevice&gt;) hub.getAttachedUsbDevices())
              {
                  dumpDevice(child);
              }
          }
      }
  
      /**
       * Main method.
       *
       * @param args
       *            Command-line arguments (Ignored)
       * @throws UsbException
       *             When an USB error was reported which wasn't handled by this
       *             program itself.
       */
      public static void main(final String[] args) throws UsbException
      {
  
          // Get the USB services and dump information about them
          final UsbServices services = UsbHostManager.getUsbServices();
          System.out.println("USB Service Implementation: "
                  + services.getImpDescription());
          System.out.println("Implementation version: "
                  + services.getImpVersion());
          System.out.println("Service API version: " + services.getApiVersion());
          System.out.println();
  
          // Dump the root USB hub
          dumpDevice(services.getRootUsbHub());
      }
  }
  </code></pre>