5

我有一个 Java 应用程序并想在其中连接 Ogre。具体来说,Ogre 是一个 3D 游戏引擎库,里面有很多复杂的 C++ 对象。我有多种选择来完成这个

1.) 使用 Raw JNI (Tough as JNI 相当复杂)

2.)使用 SWIG + JNI(有点简单......但仍然涉及 JNI)

3.) 使用 Lua 并且不使用 JNI(使用 lua 绑定到 Ogre)...基本上使用 Lua 会有所帮助,因为将 C++ 库与 Lua 连接起来要容易得多,并且从 java 调用 Lua 也不会太难。

4.) 使用 Ogre4j(使用 JNI 与 Ogre 绑定的 Java...但是这个项目并没有使用最新的 Ogre 版本进行更新)

考虑到未来对 Ogre 的维护/升级,哪些/看起来是最佳选择?

选项 3 值得尝试吗?

4

2 回答 2

3

我想建议第五个选项:JNA https://github.com/twall/jna,一个前 java.net 项目。

我的推理:选项 1 和 2 级别太低,3 是实验性的(您提到“大量复杂的 C++ 对象”),而数字 4 肯定缺乏更新。JNA 仍在维护、开源 (LGPL)、文档化和跨平台(尽管文档/示例可能相反)。

更新:
我听说了第 6 个选项,即"inspired by JNA":BridJ http://code.google.com/p/bridj/FAQWiki很好地解释了差异及其背后的原因。BridJ 是活跃和开源的(BSD 和 Apache 许可证)。

于 2012-02-29T16:03:27.630 回答
0

也许我们可以使用 XBiG 来生成 Java 代码,就像 ogre4j 一样。实际上,XBiG 源代码有一个生成 ogre4j 源代码的测试,它旨在完成这项工作。

于 2016-10-11T15:05:20.393 回答