0

私は、C++ でソース コードを持っているバイナリ実行可能ファイルを持っています。Java コードで特定の方法で使用する必要があります。Java でクラスとしてラップする予定なので、コードは実行可能ファイルを直接呼び出すのではなく、クラスを呼び出します。これは、.net が古い com コンポーネントをラップする方法に似ています。私はJavaが初めてなので、それを解決するためのより良い方法があるかどうか疑問に思っています.

4

1 に答える 1

1

それは、使用したい「特定の方法」に依存します。

メソッドを直接呼び出したい場合は、(おそらく) JNI を学ぶ必要があります。いくつかの奇妙な COM <-> Java のものがあります。または、少なくとも以前はありました。

UNIXコマンドと同様に、実行可能ファイルにデータを多かれ少なかれ「パイプ」したい場合は、Runtime.exec()、またはより新しい(そしてより優れた)ProcessBuilderを調べる必要があります。Runtime.exec() を直接使用するのは難しいため、これが必要な場合は、それをサポートするのに役立つライブラリやコードなどを検索してください。

(OPのコメントに応じて編集が追加されました)シェルコマンドとして実行するには、RUNtime.exec()またはProcessBuilderを確認する必要があります。ここにいくつかのリンクがあります:

スタック オーバーフロー ディスカッション 1

スタック オーバーフロー ディスカッション 2

いくつかの落とし穴に関する JavaWorld の議論はこちら

于 2012-06-05T19:54:25.493 に答える