线程“main”中的exceptionjava.lang.UnsatisfiedLinkError“

当我运行智能卡读取程序时会出现此exception。 我的设备没有连接。 请帮帮我。

这意味着它无法加载您需要的共享库。 这可能是因为。

  • 该库不在您的库路径中。
  • 该库没有正确的名称,例如LIBRARY必须是Unix上的libLIBRARY.so
  • 该库不可由您执行。
  • 该库不适用于JVM的操作系统或位大小。 例如,64位JVM不会加载32位库。
  • 您的JRE未正确安装,并且无法加载其自己的库之一。
  • 您正在使用共享库,该库需要您没有的另一个共享库。
  • DLL不是作为JNI库构建的,也不是从JNA中使用的。

我在使用System.loadLibrary时会得到这个,它将使用java.libary.path资源。 由于loadLibrary不允许绝对路径,因此可以使用绝对路径和加载方法。

System.load(HelloWorld.class.getResource("/dlls/HelloWorld.dll") .getPath());