2011-07-26 159 views
2

有沒有辦法在本地庫(Windows .dll's,Linux .so's)中調用函數,而不必編寫處理JEnv和「this」指針的C++包裝?沒有C++包裝lib的Java本機調用

我很想念C#-alike在這方面的功能,其中一個人可以輕鬆地鏈接本地函數而無需編寫橋接庫,只需編譯器編組詳細信息即可。

謝謝, Emilio。

回答

4

您可以使用Java Native Access,JNA來完成您想要的功能。

注意平時的包裝庫不會用C++編寫,但在C.

1

我討厭不必編寫JNI代碼,看着JNA但它沒有似乎是廣泛使用和可能存在潛在的性能問題。改爲使用SWIG。一旦啓動並運行,不需要很長時間就可以編寫腳本並讓它爲您生成您的JNI界面代碼。