是否可以構建HelloWorld.lib並使用JNI將其加載到Java應用程序中?或者它只與共享庫一起工作?是否可以通過JNI將靜態庫鏈接到Java?
我在JNI文檔中找不到明確的答案,沒有提及「靜態庫」。
是否可以構建HelloWorld.lib並使用JNI將其加載到Java應用程序中?或者它只與共享庫一起工作?是否可以通過JNI將靜態庫鏈接到Java?
我在JNI文檔中找不到明確的答案,沒有提及「靜態庫」。
要在運行時加載庫,它必須是dll(windows)。如果你有一個靜態庫(lib),你必須通過JNI來使用它,你必須創建一個包裝器DLL
你將不得不將它鏈接到JVM,你沒有辦法做到這一點。這就是爲什麼JNI是用共享庫定義的,而不是靜態的。
的Java 8支持靜態鏈接本地庫 http://openjdk.java.net/jeps/178
檢查http://stackoverflow.com/questions/2349093/static-libraries-and-jni – BackSlash 2013-03-15 13:31:46
@Harlandraka我看到的問題發佈前,但鏈接死。而且,現在它直接是問題答案而不是問題評論。 – quimnuss 2013-03-15 13:42:14