2009-07-10 17 views
4

私は複雑で難解なファイルタイプを読むことができる必要があるC++プログラムを書いています。私はすでにこれらのファイルを処理するためのJavaプログラムを持っています。これらのファイルには、より単純なファイル形式に変換する機能が含まれています。私の考えは、私のプログラムが複雑なファイルから情報を読み取る必要があるときは、より簡単なファイルタイプに変換するためにJavaメソッドを呼び出さなければならないときは、私のプログラムが簡単に読むことができる一時ファイルに書き出します。ファイルは十分に小さく、パフォーマンスは許容されます。 Qtで自分のプログラムを書いて、Windows Vistaマシンでそれを実行しています。C++からJavaメソッドを呼び出す最も簡単な方法は何ですか?

私はJava Native Interfaceを使用してみましたが、もっと詳しく調べると、それを回避する必要があるようです。これを達成するためのよりよい方法はありますか、またはJNIアプローチを続けるべきですか?

答えて

6

どのくらいの頻度でこれを行う必要がありますか?それがそれほど頻繁でないならば、あなたはそれを外に出してそこで行うことができます。それを行うためにコマンドラインを生成するだけです。 JNIは働いていますが、セットアップには少し苦労します。一度それを設定したら、うまくいくはずです。

3

Javaアルゴリズムの実行可能なjarを作成しないのはなぜですか?

1

お気軽にSWIGにお問い合わせください。 SWIGは、C、C++で書かれたプログラムと、さまざまな高水準プログラミング言語を結ぶソフトウェア開発ツールです。SWIGはPerl、PHP、Python、Tcl、Rubyなどの一般的なスクリプト言語を含むさまざまな言語で使用されます。

+0

OPは逆にしたいと思うようです。しかし、SWIGは面白そうだ。 –

1

GCJがオプションの場合、JavaプログラムをライブラリとしてC++(やはりg ++の具体的な)プログラムにリンクできるネイティブコードと、直接CNIのマッパーを含むヘッダファイルにコンパイルできますすべてのJavaのものをC++に - 名前空間へのパッケージ、クラスへのクラス、メンバ関数へのメソッドなど。

2

GCJを使用すると、Javaをリンクするlibにすることができます。

JNIと同じくらい痛いかもしれませんが、少なくともあなたはJREを読み込んでいないか、依存していません。

関連する問題