将Java项目编译为本机库,并在其顶部创建一个C/C++包装器
我正在做一个C/C++项目
我在网上找到了一些非常有价值的Java库形式的资产,我想将它们集成到我的C/C++项目中。这些是我不考虑移植到C/C++的大项目。p>
采取1、2和;3考虑到,我想知道是否可以使用java库,将它编译成本地库,然后在该库的顶部创建C或C++包装器。这意味着这样就不再需要Java虚拟机了。这样,我将摆脱Java虚拟机层。这可能吗
我在网上搜索,看看是否有人成功地创建了这种管道,但没有得出结论
我想问的是,这条管道是否可能,至少在理论上,如果网上没有成功创建它的人的例子
如果可能的话,有人能给我指出正确的方向吗
# 1 楼答案
看看JNI和JVM启动序列:这都是C/C++在这个级别上的编码
您可以提前编译java(AOT),也可以像调用库一样调用JVM(这就是Launch4j等可执行包装器的工作方式)
简化Java/C/C++接口的一种方法是使用IDL。一旦定义了IDL接口,就可以使用它生成Java/C/C++代码