2012-02-09 6 views
1

私はC++でビルドされたプロジェクトで作業しています。このプロジェクト内には、Javaコードから呼び出すパブリックメソッドを含むパブリッククラスがあります。これを実現させる最善の方法は何ですか?私は、C++コードをバイトコードにコンパイルするものが欲しいと思っています。JVMでC++コードをどのように活用できますか?

私はこのようなツールをいくつか見てきましたが、そのうちのいくつかは非常に長い間更新されておらず、他のツールは不適切なようです。これらのツールのいずれかがプロフェッショナルグレードのアプリに使用できるほど成熟していますか?オープンソースが望ましいとはいえ、商用ツールについても同様に考えています。

+0

JNIの使用を検討している理由は何ですか? – Jyro117

+0

申し訳ありません - JNIに精通していません – sangfroid

+0

私は実際に自分自身を使ったことはありませんが、他の誰かがもっと詳しく説明できると確信しています。本質的に、JVMの外部でネイティブコードにアクセスしたり、ネイティブコードでJavaコードを呼び出すことができます。素早くGoogle検索を行い、実際の名前はJava Native Interfaceです。 – Jyro117

答えて

1

遅いと非常に使いにくいと知られている古いスタンバイのJNIがあります。

JNAは私が個人的に使ったことはありませんが、「良いことを聞いたことがあります」とあなたの請求書に合うようです。

代わりに、潜在的により良いアプローチは、C++コードを、例えば、次のサービスをリッスンするサービスとして再構成することです。 TCPまたはUNIXソケット。これは移植性を高め、ほとんどの言語からの接続を可能にし、Java固有ではありません。

2

私は現在、javacppという名前のパッケージを使用しています。

1

JNI(Java Native Interface)を使用したJavaへのC++のブリッジは、実際にはかなり簡単です。欠点は、コードを動作させるプラットフォームのためにC++の部分をコンパイルする必要があることです。

私はこの記事Can C++ call Java code?でC++からJavaを呼び出す例がありますが、JavaからC++を呼び出すことは非常に似ています。

関連する問題