【发布时间】:2013-07-09 19:34:01
【问题描述】:
我有一个通过 JNI 库连接到指纹扫描仪的 java 项目。我的项目在 netbeans 中完美运行,jni 文件位于 java 项目的根目录中。当我尝试将其打包为 jar 时会出现问题。我有这个错误:
C:\Users\dwake\Desktop\OnceAgain\TestJob\dist>java -jar TestJob.jar
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no scannerJNI in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at scanner.scannerGUI.<clinit>(Unknown Source)
at scanner.main$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
我知道这是由于库文件不在正确的目录中或 java 虚拟机找不到。如何让我的 JNI 库与 jar 一起编译?
附:我尝试使用 7zip 打开 jar 并将 .dll 文件放入 jar 中,但这并没有帮助。
【问题讨论】:
-
解决了您的问题吗?
-
不抱歉:c 我在尝试编辑清单文件时设法删除了所有源代码:/ 虽然我有备份,但没关系。哈哈。不管怎么说,还是要谢谢你。我会继续努力
-
如果需要,请查看我的答案。
标签: java java-native-interface manifest executable-jar