在Java应用程序中与Ogre(C+;+;)接口的最佳方式是什么?

在Java应用程序中与Ogre(C+;+;)接口的最佳方式是什么?,java,c++,ogre,Java,C++,Ogre,我有一个Java应用程序,希望在其中与Ogre接口。 具体来说,OGRE是一个3D游戏引擎库,里面有很多复杂的C++对象。 1.)使用原始JNI(因为JNI非常复杂,所以很难) 2.)使用SWIG+JNI(有点简单……但仍然涉及JNI) 3)使用Lua和JNI(使用LoA绑定到OGRE)…基本上使用Lua帮助,因为与Lua连接的C++ LIB更容易,调用java的Lua不会太难。 4.)使用Ogre4j(一种使用JNI绑定到Ogre的Java…但是这个项目没有更新到最新的Ogre版本) 考虑到

我有一个Java应用程序,希望在其中与Ogre接口。 具体来说,OGRE是一个3D游戏引擎库,里面有很多复杂的C++对象。 1.)使用原始JNI(因为JNI非常复杂,所以很难)

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

3)使用Lua和JNI(使用LoA绑定到OGRE)…基本上使用Lua帮助,因为与Lua连接的C++ LIB更容易,调用java的Lua不会太难。 4.)使用Ogre4j(一种使用JNI绑定到Ogre的Java…但是这个项目没有更新到最新的Ogre版本)

考虑到未来对食人魔的维护/升级,以下哪项/看起来是最好的选择


< P>是不是有3个选项值得尝试?

< P>我想提出第五个选项:JNA,以前的Java.net项目。
BR/>我的推理:选项1和2太低,3是imHO实验(你提到的“很多复杂C++对象”),而数字4绝对缺少更新。JNA仍然是维护的、开源的(LGPL)、文档化的和跨平台的(尽管文档/示例可能会提出相反的建议)

更新:

我听说了第六个选项,它是受JNA启发的BridJ。和很好地解释了差异及其背后的原因。BridJ是主动的、开源的(BSD和Apache许可)。

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

为什么要使用来自Java的Ogre?为什么不找到java游戏引擎,或者用C++编写你的应用程序?