0

是否可以将 C++ 库静态链接到 Java 程序,以将它们变成单个文件的方式,就像链接 2 个 C++ 库一样?
(我读到java程序也可以编译成EXE)。

4

3 回答 3

1

从理论上讲,这应该可以创建一个已经包含 JVM 使用的所需 JNI 函数的 EXE。

此 EXE 必须通过在同一进程中启动 JVM 实例来加载 Java 部分(通过加载 jvm.dll 并执行它,如问题JNI Java in c++所示)。

我知道的 Java-EXE 包装器不支持这样的东西,因为它们带有一个预编译的 EXE,它将使用的 JAR 作为资源附加。因此,我假设您必须构建自己的 C/C++ 可执行文件并实现所需的所有功能。

于 2012-06-15T09:46:28.537 回答
0

除非您可以访问 jvm.lib 库的静态版本,否则这是不可能的。它作为引用 jvm.dll 的动态链接库分发。你不能这样做。

于 2012-06-15T10:18:43.867 回答
0

当我使用 JNI 时,我将支持 JNI 的 dll 包含到我的 jar 文件中。然后通过类路径访问它。您将拥有单个 jar 文件。

于 2012-06-15T09:53:04.897 回答