[英]How to call a function in a c++ object file from java?
我有一个项目的现有cpp文件,我想将其用于Java中的应用程序。 我无法更改cpp文件。 如何从Java调用函数?
我正在Windows 10中使用JavaFX作为我的应用程序。 我看过一些有关JNI的文章,但似乎没有一个能解决我的问题。
如果不希望使用JNI或Swig或它的水平太低,
一个真正的钝器方法是将.cpp包装在c / c ++程序中,并构建一个转储到stdout / file的.exe。 然后通过外部shell命令在Java中执行该命令。
另一个不错的选择是
从根本上讲,这可以处理所有问题,而且可以说到处都是(通过自动生成目标语言的代码来工作),这是我通常在RPC情况下推荐的方法。 但是,可能会涉及更多的安装成本(最终取决于您的实际需求)-也是因为您需要将.cpp托管在本地服务中(对于您而言)。
如果将库打包在共享对象或dll中,则还可以使用JNA: https : //github.com/java-native-access/jna或https://github.com/java-native-access/jna /blob/master/www/GettingStarted.md
例如,您已经具有到Windows API的映射。 另一个示例是Java中mediainfo的映射: https : //github.com/andersonkyle/mediainfo-java-api/blob/master/src/main/java/org/apothem/mediainfo/api/MediaInfo.java
请注意,据我了解,这是基于JNI的:它简化了过程,因为您通常只需要在Java端声明接口并调用适当的方法即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.