2013-07-09 59 views
1

我有一個Java項目通過JNI庫連接到指紋掃描器。我使用Java項目的根目錄中的jni文件將NetBeans中的項目完美地運行。當我嘗試將它打包爲一個罐子時,就會出現問題。我有這個錯誤:JNI分佈式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一起編譯?

P.S.我曾嘗試用7zip打開jar文件,並將.dll文件放在jar文件中,但這沒有幫助。

+0

它是否解決您的問題? –

+0

不抱歉:c我試圖在編輯清單文件時刪除了所有的源代碼:/雖然我有備份,但它還好。大聲笑。不管怎麼說,還是要謝謝你。我會繼續嘗試 – DeanMWake

+0

如果需要,請檢查我的答案。 –

回答

1

試試這個 -

的java -Djava.library.path = /路徑/要/的DLL /罐子TestJob.jar

相關問題