静态链接的库和JNI?

时间:2014-08-11 15:41:43

标签: java java-native-interface static-libraries

我正在计划一个应用程序,该应用程序将利用现有的第三方SDK提供静态链接(.lib)C ++库的集合。我想用Java编写自己的应用程序,所以我在将现有的SDK库加载到VM中时玩了一些。

但是,据我所知,JVM似乎只能使用动态链接库(.dll)。

这是真的吗?如果是这样,有可能解决 - 比如编译我自己的.dll链接到静态库?我在Java方面有相当多的经验,但对JNI和C / C ++都是新手,因此我们非常感谢任何响应或推动正确的方向,

干杯!

1 个答案:

答案 0 :(得分:3)

你是对的:JVM 可以加载dll(你通常在Java源代码中有一些启动代码,包含native函数来加载它们。它无法加载lib s。

因此,您需要创建一个静态链接到dll的{​​{1}}。

执行此操作的常规方法是运行程序lib,该程序将生成您需要实现的javah函数的存根。