4

私の問題は、Java内でのc++ファイルのコンパイルに関するものです。私はc#の実行を試みました、それは大丈夫です。C#をコンパイルするためのこの抽出コード

ProcessBuilder launcher = new ProcessBuilder("gmcs","HelloWorld.cs");`

ただし、C++用の私のコード

ProcessBuilder launcher =new ProcessBuilder("g++", "HelloWorld.cpp -o HelloWorld");

error =2を返します。そのようなファイルまたはディレクトリはありません
launcher.directory(new File(path)) 両方の場合に使用したパスを示します

4

1 に答える 1

7

引数を個別に指定する必要があります。

ProcessBuilder launcher =
    new ProcessBuilder("g++", "HelloWorld.cpp", "-o", "HelloWorld");

それ以外の場合は、引数文字列全体が1つの引数としてg++実行可能ファイルに渡され、(Linux端末の場合と同じようにエスケープされたスペースを使用して)g++という名前のファイルを見つけようとします。HelloWorld.cpp\ -o\ HelloWorld

使用法の詳細については、ドキュメントを参照してください。

于 2013-01-30T14:54:34.700 に答える