在使用HSDB的时候,报了一个错,

Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError:
 Can't load library: E:\Program Files\Java\jre\bin\sawindbg.dll
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.(WindbgDebuggerLocal.java:661)
        at sun.jvm.hotspot.HotSpotAgent.setupDebuggerWin32(HotSpotAgent.java:567)
        at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:335)
        at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304)
        at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
        at sun.jvm.hotspot.HSDB.attach(HSDB.java:1184)
        at sun.jvm.hotspot.HSDB.access$1700(HSDB.java:53)
        at sun.jvm.hotspot.HSDB$25$1.run(HSDB.java:456)
        at sun.jvm.hotspot.utilities.WorkerThread$MainLoop.run(WorkerThread.java:66)
        at java.lang.Thread.run(Unknown Source)

把自己E:\Program Files\Java\jre\bin目录下sawindbg.dll 粘贴到E:\Program Files\Java\jdk1.8.0_111\jre\bin 下既好。

为什么会报Unknown Source???可能因为跨线程了,导致捕获不了线程的错误信息。

我们来看一看jdk对UnsatisfiedLinkError的定义:

Thrown if the Java Virtual Machine cannot find an appropriate
native-language definition of a method declared native.
因为JVM找不到本地语言定义的方法所以报这个错。

经常看到Exception的错误,终于见到了一次Error的错误!!!