1

Javaでrarファイルを抽出したくありません。ファイルを抽出する場所も選択できるようにしたい。私は運がない図書館を見つけようとしました。そこでRuntime.getRuntime().exec()公式のrarlabsプログラムと一緒にコマンドを使ってみました。ターミナルでは抽出できますが、コードで同じコマンドを使用すると、まったく機能しません。これが最善の方法ですか、それとも他の方法を使用する必要がありますか? そして、Runtime コマンドの何が間違っているのでしょうか? 動作しないサンプル コードを次に示します。

Process p = Runtime.getRuntime().exec("cd ~/Desktop/testfolder && /usr/local/bin/unrar x ~/Desktop/test.rar");

ちなみにマックを使っています。

4

1 に答える 1

0

プロセスを構築する前に、それを使用ProcessBuilderし、必ず呼び出しinheritIO()てください。あなたの問題、つまり、サブプロセスのバッファオーバーフローstdoutです。これは、デフォルトInputStreamでは、サブプロセスstdoutがパイプされた が提供され、それを排出する責任があるために発生します。

于 2013-05-17T14:07:56.233 に答える