7

是否可以使用 JNI 构建 HelloWorld.lib 并将其加载到 Java 应用程序中?或者它只适用于共享库?

我在 JNI 文档上找不到明确的答案,没有提到“静态库”。

4

4 回答 4

3

它需要是一个动态库。幸运的是,您可以从静态库构建动态库。

于 2013-03-15T13:31:02.947 回答
2

Java 8 支持静态链接的本地库 http://openjdk.java.net/jeps/178

于 2014-04-27T19:33:24.390 回答
1

要在运行时加载库,它必须是 dll(Windows)。如果你有一个静态库(lib)并且你必须通过 JNI 使用它,你必须创建一个包装 dll

于 2013-03-15T13:31:13.730 回答
1

您必须将其链接到 JVM,而您没有办法做到这一点。这就是为什么 JNI 是用共享库而不是静态库来定义的。

于 2013-03-17T00:03:39.273 回答