加载本机lib错误

时间:2017-03-06 19:03:47

标签: java native lib

我在linux上启动我的应用程序时遇到问题,从IDE和everthink直接启动是正常的,但在linux上我遇到了以下错误:

native lib Version = RXTX-2.2pre2
mar 06, 2017 7:54:44 PM org.jnativehook.DefaultLibraryLocator getLibraries
SEVERE: Unable to extract the native library /org/jnativehook/lib/linux/arm/libJNativeHook.so!

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: org.jnativehook.GlobalScreen.getAutoRepeatRate()Ljava/lang/Integer;
at org.jnativehook.GlobalScreen.getAutoRepeatRate(Native Method)
at org.jnativehook.GlobalScreen.<clinit>(Unknown Source)
at the.main.pac.TheModbusSimpleTesterWindow$1.run(TheModbusSimpleTesterWindow.java:74)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果在java.library.path属性上找不到库,库会尝试从Jar中提取天真代码。如果要重新打包Jar,则必须将库打包到Jar 中的相同位置,并完全符合项目的GPL许可。必须将库作为独立库包含在内以符合要求与Lesser-GPL。您可以通过实现NativeLibraryLocator接口指定不同的库加载方法或位置。有关实施示例,请参阅DefaultLibraryLocator