5

私はJavaアプリケーションを持っていて、その中にOgreをインターフェースしたいと思っています。具体的には、Ogreは3Dゲームエンジンライブラリであり、その中に複雑なC++オブジェクトがたくさんあります。これを実現するための複数のオプションがあります。

1.)Raw JNIを使​​用する(JNIは非常に複雑であるためタフ)

2.)SWIG + JNIを使​​用します(やや単純ですが、それでもJNIが関与します)

3.)Luaを使用してJNIを使​​用しない(Ogreへのluaバインディングを使用する)...基本的にLuaを使用すると、C ++ libとLuaのインターフェイスがはるかに簡単になり、JavaからLuaを呼び出すのが難しくなりません。

4.)Ogre4jを使用します(JNIを使​​用したOgreへのJavaバインディング...ただし、このプロジェクトは最新のOgreバージョンで更新されていません)

これらの/将来のメンテナンス/Ogreへのアップグレードを念頭に置いて最良のオプションのように見えるのはどれですか?

オプション3は試してみる価値がありますか?

4

2 に答える 2

3

5番目のオプションを提案したいと思います:JNA https://github.com/twall/jna、以前のjava.netプロジェクト。

私の推論:オプション1と2は低レベルであり、3は実験的であり(「複雑なC ++オブジェクトがたくさんある」と述べました)、4番目は間違いなく更新がありません。JNAは引き続き維持され、オープンソース(LGPL)であり、文書化されており、クロスプラットフォームです(ただし、ドキュメント/例では反対のことが示唆されている場合があります)。

更新:
6番目のオプションについて聞いたことがあります"inspired by JNA" BridJhttp://code.google.com/p/bridj/ 。FAQWikiは、その背後にある違いと理由をよく説明しています。BridJはアクティブでオープンソースです(BSDおよびApacheライセンス)。

于 2012-02-29T16:03:27.630 に答える
0

たぶん、ogre4jと同じように、XBiGを使用してJavaコードを生成できます。実際、XBiGソースコードにはogre4jソースコードを生成するためのテストがあり、その作業を行うように設計されています。

于 2016-10-11T15:05:20.393 に答える