1. ホーム
  2. java

[解決済み】CreateProcess error=2, The system cannot find file specified.

2022-01-31 02:59:12

質問

Javaで、winrarを実行してjarファイルを解凍するプログラムを書いています。 {コード をフォルダにコピーします。 {コード . 私のjavaのコードは次のようなものです。

h:\myjar.jar

これを実行すると、次のようなエラーが発生します。

h:\new

なぜこのような問題が発生するのか、どなたか教えていただけませんか。動作するようにするには、コードにどのような変更を加える必要があるのでしょうか?

解決方法は?

と仮定すると import java.io.File; import java.io.IOException; public class MainClass { public static void main(String[] args) { Runtime r = Runtime.getRuntime(); Process p = null; try { File dir = new File("C:/Program Files/WinRAR"); p = r.exec("winrar x h:\\myjar.jar *.* h:\\new", null, dir); } catch (IOException e) { e.printStackTrace(); } } } はそれを見つけることができますが、そうでない場合は、その完全な修飾パスを指定する必要があります。 java.io.IOException: Cannot run program "winrar" (in directory "C:\Program Files\WinRAR"): CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at MainClass.main(MainClass.java:16) Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 4 more にインストールされています。 {コード {コード のようなものを使う必要があります。

winrar.exe

個人的には PATH を使用することで、いくつかの追加設定機能を使用することができます。 また、可能であれば、コマンドとパラメータを別々の Runtime.exec その方が、1つの {コード という変数がありますが、例えば...

winrar.exe

の内容を読むことを忘れないでください。 C:/Program Files/WinRAR プロセスを停止させる可能性があります。