2016-03-22 4 views
0

を実行するためにJava言語でのRuntime.exec()を使用して、私はランタイムを使用して(既に他の誰かによって書かれた)Cでプログラムを実行したいです。 exec()メソッド。私はJavaでプログラムを書いて、ある時点でいますCファイル

C内のプログラムは、入力として2つのパラメータを受け取り、出力として1を与えます。 だから私はターミナルで私は(/ execファイルの名前/)param1 param2の結果を書き込みます

プログラムは2つのパラメータを使用して結果を計算します。 は、具体的には:のparam1とPARAM2はイメージであり、何とか/「コンバイン」それらを「比較」し、それが結果として命名新しい鮮明な画像(BMPファイル)を作成し、それは医用画像および生物医学の目的のためです。私はこのプログラムとその複雑なコードを書かなかったので、私はそれをjavaで実行したい。もし私がそれを行うことができれば、Cのプログラムがどのように動作するのか理解する必要はありません。私がしなければならないことは、私のJavaプログラムを実行することによってそれを実行する方法を見つけることです。はい、私も(PARAM1を入力を与える方法をお知りになりたい場合は

iはC.

で書かれた(私にはなじみのない)プログラムを実行するためにJavaでのRuntime.exec()メソッドを使用することができますparam2)と、私のJavaコードでさらに使用するための出力(結果)の取得方法についても説明します。

+2

まず:あなたは** Cのソースコードは実行されません。あなたはCコンパイラを起動します。バイナリ実行可能ファイルをビルドします。そして、他のバイナリを呼び出すような、実行時のexec()を使ってjavaから呼び出すことができます。 – GhostCat

+0

大丈夫ですか、どうすればいいですか?コマンドラインは何ですか? – eliodorou

+1

実際にあなたはいくつかの先行研究をすることになっています。そこに良いチュートリアルがあります。このサイトの良い答えでかなりの質問があります。なぜ何度も書類になっているあなたに何かを説明するために誰かが必要なのはなぜですか? – GhostCat

答えて

0

はい、あなたはすべての実行をこのように実行しても、コマンドラインパラメータを渡すことができます。

resultは実際には出力ではなく、あなたの呼び出しで提供する必要がある出力ファイルの名前です。私はあなたが「さらに使用するための出力(結果)を取得」によって何を意味するかわからない

Runtime.exec("programName image1.bmp image2.bmp result.bmp"); 

だから、あなたが書かなければならないようなものです。画像データが必要な場合は、画像解析または処理ライブラリで画像ファイル(名前を知っている)を開きます。

+0

私は何とか実行可能ファイルと2つのイメージがあるフォルダに移動する必要がありますか? 端末と同じ方法ですか? (CD ./home/など) – eliodorou

+0

@eliodorou:一つの可能​​性になります。しかし、プログラムが入力ファイルの先頭にパス名を受け入れるかどうかを調べることもできます。 –

+0

も参照してください多くの良いの[Runtime.exec()はしない](http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html)プロセスの作成と処理に関するヒント(出力ストリームの読み込みを含む)それを無視すると 'exec'が参照され、' ProcessBuilder'を使用してプロセスが作成されます。 'String arg'を' String [] args'に分解して、スペースやスペースを含む引数を簡単に説明してください。 –

関連する問題