JNI tips

java通過JNI調用dll,參見firefly的帖子 《JNI 對象的操作》

這裏是一些使用心得。
1.鏈接異常

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.5.0_08\jre\bin\QueryClientDLL.dll: Can't find dependent libraries

可能是系統找不到需要加載的依賴dll。
使用Dependency Walker 找出所依賴的dll文件。

如果提示缺失dll,就添加該dll到C:\Program Files\Java\jdk1.5.0_08\jre\bin下面。

並且拷貝一份放置到system32目錄下

 

2.異常處理

java通過jni調用dll的過程中,如果dll中出現了未被捕獲的異常將會導致jvm崩潰。

因此一種比較保守的方法是在dll中儘量把所有異常都捕獲。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章