如何解决线程中的错误消息异常;“主要”;java.lang.NoClassDefFoundError:org/usb4java/Loader

如何解决线程中的错误消息异常;“主要”;java.lang.NoClassDefFoundError:org/usb4java/Loader,java,usb,usb4java,Java,Usb,Usb4java,我试图使用usb4java,但在运行它时出现了一个错误。它编译得很好,我已经查看了我的类路径,似乎包含了usb4java JAR,如下所示 我目前使用的是Windows7,运行的是Java8,使用的是usb4java-javax-1.2.0()。我得到了以下错误。有没有办法克服这个问题 "C:\Program Files\Java\jdk1.8.0\bin\java" -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program F

我试图使用usb4java,但在运行它时出现了一个错误。它编译得很好,我已经查看了我的类路径,似乎包含了usb4java JAR,如下所示

我目前使用的是Windows7,运行的是Java8,使用的是usb4java-javax-1.2.0()。我得到了以下错误。有没有办法克服这个问题

"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.<init>(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
“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-类路径“C:\ProgramFiles\Java\jdk1.8.0\jre\lib\charsets.jar;C: \Program Files\Java\jdk1.8.0\jre\lib\deploy.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\javaws.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\jce.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\jfr.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\jfxswt.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\jsse.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\management-agent.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\plugin.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\resources.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\rt.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\access-bridge-64.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\cldrdata.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\dnsns.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\jaccess.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\localedata.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\nashorn.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\sunec.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\sunjce_provider.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\sunmsapi.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\sunpkcs11.jar;C:\ProgramFiles\Java\jdk1.8.0\jre\lib\ext\zipfs.jar;C:\Users\kim\IdeaProjects\USB\u Test\u Usb4Java\out\production\USB\u Test\u 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\u Test\u Usb4Java\src\USB-api-1.0.2.jar;C:\Users\kim\IdeaProjects\USB\u Test\u Usb4Java\src\Usb4Java-javax-1.2.0.jar;C:\ProgramFiles(x86)\JetBrains\IntelliJ IDEA 13.1.1\lib\IDEA\u rt.jar“com.IntelliJ.rt.execution.application.AppMain
线程“main”java.lang.NoClassDefFoundError中出现异常:org/usb4java/Loader
位于org.usb4java.javax.Services。(Services.java:59)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:408)
在java.lang.Class.newInstance(Class.java:433)上
位于javax.usb.UsbHostManager.createUsbServices(未知源)
位于javax.usb.UsbHostManager.getUsbServices(未知源)
Main.Main(Main.java:89)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
原因:java.lang.ClassNotFoundException:org.usb4java.Loader
在java.net.URLClassLoader$1.run(URLClassLoader.java:372)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
…还有14个
进程已完成,退出代码为1
我的Java代码如下所示,是从usb4java站点复制的

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<UsbConfiguration>) device
                .getUsbConfigurations())
        {
            // Dump configuration descriptor
            System.out.println(configuration.getUsbConfigurationDescriptor());

            // Process all interfaces
            for (UsbInterface iface: (List<UsbInterface>) configuration
                    .getUsbInterfaces())
            {
                // Dump the interface descriptor
                System.out.println(iface.getUsbInterfaceDescriptor());

                // Process all endpoints
                for (UsbEndpoint endpoint: (List<UsbEndpoint>) 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<UsbDevice>) 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());
    }
}
导入javax.usb.UsbConfiguration;
导入javax.usb.UsbDevice;
导入javax.usb.UsbEndpoint;
导入javax.usb.UsbException;
导入javax.usb.UsbHostManager;
导入javax.usb.UsbHub;
导入javax.usb.UsbInterface;
导入javax.usb.UsbPort;
导入javax.usb.UsbServices;
导入java.util.List;
公共班机{
/**
*将指定的USB设备转储到标准输出。
*
*@param设备
*要转储的USB设备。
*/
专用静态无效转储设备(最终USB设备)
{
//转储有关设备本身的信息
系统输出打印LN(设备);
最终UsbPort端口=device.getParentUsbPort();
如果(端口!=null)
{
System.out.println(“连接到端口:+port.getPortNumber());
System.out.println(“父项:+port.getUsbHub());
}
//转储设备描述符
System.out.println(device.getUsbDeviceDescriptor());
//处理所有配置
对于(USBC配置配置:(列表)设备
.GetUsbConfiguration())
{
//转储配置描述符
System.out.println(configuration.getUsbConfigurationDescriptor());
//处理所有接口
对于(USB接口iface:(列表)配置
.getUsbInterfaces())
{
//转储接口描述符
System.out.println(iface.getUsbInterfaceDescriptor());
//处理所有端点
对于(UsbEndpoint端点:(列表)iface
.getUsbEndpoints())
{
//转储端点描述符
System.out.println(endpoint.getUsbEndpointDescriptor());
}
}
}
System.out.println();
//如果设备是集线器,则转储子设备