Runtime.exec() を使用して、スペースのあるディレクトリで別のプロセスを開始したいと思います。(バカみたいだけど、好奇心を満たしたい)
問題の詳細 (簡易版) C:/Program Files/MyProgram にある myprogram.exe があります。
私が観察したこと:1)。Runtime.exec("C://Program Files//MyProgram//myprogram.exe") を呼び出すと、IOException は次のことを示します: エラー コード = 2 でファイル C:/Program が見つかりません。スペースの
2)。私は試しました: Runtime.exec("/"C://Program Files//MyProgram//myprogram.exe/""), IOException は次を示します: ファイルが見つかりません: "C:/Program Files/MyProgram/myprogram. EXE"
3)。教訓を学び、Runtime.exec() のオーバーロード バージョンを試してみました。 File dir = new File("C://Program Files//MyProgram//"); そして実行:Runtime.exec( "myprogram.exe"、null、dir)、それは言う:C:/ Program Files / MyProgram /でファイルmyprogram.exeが見つかりません
4)。1)「Program Files」の代わりに、名前をProgram_Filesに変更しました。すべてが機能します
ProcessBuilderでも似たようなことができるのはわかっているのですが、心では手放せません…(私の弱点なのかもしれませんが)。2) と 3) が機能しない理由を誰か教えてもらえますか?
ありがとう。