質問: レベルの低い質問ですいません。プログラムに関する知識が徹底的に不足していて質問させて頂きました。 execでMS-DOS(あるいはcygwin)にコマンドを送ろうとするのですが、うまくいきません。MS=DOSは一度は標準出力でウィンドウは開かれてないものの起動だけなら確認できてはいます。 コマンドを送ろうとして、String コマンド= で宣言 Runtime .getRuntime().exec(コマンド);で送っているのですが 以下のエラーになりました。 cygwinに関しては起動するだけで同様のエラーになり解決できません。 execからDOSコマンドを利用する為にはどうすればいいのでしょうか?ご助言宜しくお願いします。 java.io.IOException: CreateProcess: cd UserData error=2 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) at java.lang.ProcessBuilder.start(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at onsei.execSSM.main(execSSM.java:26)
回答: こんにちわ。 Runtime#execが実行できるのは *.exe だけだそうで、 おそらく、DOSの標準コマンド(DIR、CD...)は CMD /C コマンド で実行するそうです。 詳しくは、こちら↓ ttp://javafaq.jp/#S103 P.S Java上で「CD」を発効しても、JVM終了時に元にもどるとおもうのですが。 移動先ディレクトリで何がしたいのかわかりませんが、 ディレクトリ名がわかっているのであれば、File 等 java.io パッケージでダイレクト指定してやれば 操作が自由になるかと。 それでは。