親愛なるすべて EXEファイルをJavaで実行したいが、正しく実行できませんでした。 はもともと、DOSコマンドプロンプトで、私のコマンドは、このようなものです:JavaでDOSコマンドを実行すると問題が発生する
C:>\crf_test.exe model <inputfile.txt> outputfile.txt
注:入力ファイル名がカッコ<>で行われなければなりません。 DOSウィンドウで実行すると、常に良い結果が得られました。
私は私のJavaプログラムは、上記のコマンド呼び出したいとき、私は次のように実行します。
Process p = Runtime.getRuntime().exec("crf_test.exe model <inputfile.txt> outputfile.txt");
しかし、このコマンドの出力はありません「そのようなファイルまたはディレクトリ:」Javaはない IゲストDOSコマンドで角括弧<>のように入力します。私も<を削除しますが、exeファイルはそれを受け入れませんでした。 これでどのようにこの問題に対処できますか?私に解決策を教えてください ありがとうございました
あなたは 'exec(new String [] {" crf_test.exe "、" model "、" "、" outputfile.txt "})'を試したことがありますか? –
rodion
また、 "cft_test.exe ..."の代わりに "。\\ crf_test.exe ..."を使用してみてください。私はこれまでLinuxでこれと同様の問題を抱えていましたが、これで解決しました。 – rodion
[Java exec()はパイプの接続されたコマンド の期待される結果を返しません](http://stackoverflow.com/questions/2088917/java-exec-does-not-return-expected-result-of-pipes-接続されたコマンド)。その質問はパイプに対処しますが、実際には同じことです。パイプとリダイレクト(<, >)は両方ともシェルの関数であり、 'exec'で処理されません。この[記事](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4)も役立ちます。特に、「Runtime.exec()はコマンドライン "を参照してください。 –