プロが教える店舗&オフィスのセキュリティ対策術

こんにちは、Makotoと申します。
Runtime.execを使って、ディレクトリを作成する
プログラムを作っているのですが、下記のプログラムで
ディレクトリは作成されるのですが、コマンドプロンプト画面が
立ち上がったままになってしまいます。閉じようと思い、8行目でexitコマンド
を発行してみたのですが、うまくいきませんでした。このウィンドウを閉じる
方法はあるのでしょうか?


1:public class test{
2:  public static void main(String[] args) throws Exception{
3:    Runtime rt = Runtime.getRuntime();
4:    Process pr;
5:    try {
6:      Process proc1 = rt.exec("cmd /C start /MIN
7:               mkdir c:\\\poi\\test");
8:      proc1 = rt.exec("command.com, /, exit");
9:    } catch (java.io.IOException e) {
10:     System.err.println(e);
11:     System.exit(1);
12:    }
13:
14: }
15:}

A 回答 (1件)

k-makotoさんが実際にやりたい事がよく分からないので確認ですが、


・ディレクトリを作成する方法が知りたい。
・Runtime.execで起動したサブプロセスを終了させる方法が知りたい。
どちらなのでしょう?

ディレクトリを作成するだけであれば、わざわざプロセス起動しなくても、File#mkdirでよいと思います。

Runtime.execで起動したサブプロセスを終了させるには、
戻り値から取得できるProcessオブジェクトの、destroyを実行すると、
サブプロセスは終了できます。

ただし、サンプルプログラムは妙なことをしています。
Javaプログラムから、サブプロセスとしてcmd.exeを実行しています。
そしてそのcmd.exeからstartコマンドを起動しています。
startコマンドは、実行するためにウィンドウを開くためのコマンドです。

まずは、cmdとstartのヘルプを見て、動作を確認したほうがよいと思います。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
>・Runtime.execで起動したサブプロセスを終了させる方法が知りたい。
の方法が知りたかったのですが、

>ディレクトリを作成するだけであれば、わざわざプロセス起動しなくても、>File#mkdirでよいと思います。

FileのAPIリファレンスを見るとmkdir()がありました。
調査不足でした。(^^;)
Javaからディレクトリの作成ができれば、Runtime#execを
使用する必要がないので、こちらを使用します。

お礼日時:2003/02/03 16:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!