我正在计划一个应用程序,该应用程序将利用现有的第三方SDK提供静态链接(.lib)C ++库的集合。我想用Java编写自己的应用程序,所以我在将现有的SDK库加载到VM中时玩了一些。
但是,据我所知,JVM似乎只能使用动态链接库(.dll)。
这是真的吗?如果是这样,有可能解决 - 比如编译我自己的.dll链接到静态库?我在Java方面有相当多的经验,但对JNI和C / C ++都是新手,因此我们非常感谢任何响应或推动正确的方向,
干杯!
答案 0 :(得分:3)
你是对的:JVM 可以加载dll
(你通常在Java源代码中有一些启动代码,包含native
函数来加载它们。它无法加载lib
s。
因此,您需要创建一个静态链接到dll
的{{1}}。
执行此操作的常规方法是运行程序lib
,该程序将生成您需要实现的javah
函数的存根。