是否可以静态地将C ++库链接到Java程序,将它们组合成单个文件,就像链接2个C ++库一样? (我读过java程序也可以编译成EXE)。
答案 0 :(得分:1)
理论上,应该可以创建一个已包含JVM使用的所需JNI函数的EXE。
此EXE必须通过在同一进程中启动JVM实例来加载Java部分(通过加载jvm.dll并执行它,如问题JNI Java in c++中所示)。
我知道的Java-EXE包装器不支持这样的东西,因为它们带有预编译的EXE,它将使用的JAR作为资源附加。因此,我假设您必须构建自己的C / C ++可执行文件并实现所需的所有功能。
答案 1 :(得分:0)
当我使用JNI时,我将带有JNI支持的dll包含到我的jar文件中。然后通过classpath访问它。你将有一个jar文件。
答案 2 :(得分:0)
除非您可以访问jvm.lib库的静态版本,否则无法访问。它作为动态链接库分发,引用jvm.dll。你不能这样做。