4

我必须在一个相当大的 C++ 应用程序中集成一个大型 Java 库。一种解决方案是使用 JNI,但这需要手动编写所有类的代码。例如,Python 有一个很好的 JPype ( http://jpype.sourceforge.net/ ) 解决方案,它可以自动化该过程(尽管由于 C++ 和 Python 的性质不同,相同的解决方案不能应用于 C++)。

谢谢,

达斯

4

5 回答 5

4

SWIG是一种工具,可让您自动生成从一种语言到另一种语言的绑定。它支持 C++ 和 Java 以及十几种其他语言。

于 2008-10-07T21:34:16.030 回答
1

看来我的问题还不够清楚。也许混乱来自JNI,它允许在展位方向访问......

我想要做的是从 C++ 访问 Java 库。也就是说,有人给我一个 JAR 文件,其中包含一个 JAVA 编译类的集合,我必须用 C++ 编写代码才能访问它(因为我想将该 Java 库的功能集成到 C++ 应用程序中)。

希望这能阐明访问的方向:)

谢谢,

达斯

于 2008-10-08T18:52:44.280 回答
0

JNA并不是您想要的,但它确实让您的生活更轻松。它不需要任何样板/生成的代码 - 您只需为要调用的方法编写一个接口。

当然,完全有理由使用 JNA 而不是 JNI。

于 2008-10-08T09:19:19.913 回答
0

不确定这个商业工具是否让生活更轻松,但您可能想探索一下——http: //www.teamdev.com/jniwrapper/index.jsf

于 2008-10-07T22:05:37.027 回答
0

我有两个建议可能对你有用,也可能对你没用:

首先,您可以尝试一些非常简单的方法。在单独的进程中运行 Java 代码,并通过管道或套接字与其通信。这很容易做到,并且不需要任何疯狂的库。缺点是通信有些受限(只是一些简单的管道),您需要围绕它编写自己的包装器来发送数据

其次,这个库到底是什么?也许我们可以建议不是用 Java 编写的替代方案,这样在您的 C++ 应用程序中使用起来会更容易?

于 2008-10-08T18:59:01.210 回答