在使用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.<clinit>(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的错误!!!
转载于:https://blog.51cto.com/thinklili/1970564