質問

Runtime.exec(" cmd / c start ....")を使用するたびに cmdウィンドウを開いています。以前の各cmdウィンドウを閉じることで、よりシームレスなアプリケーションを作成したいと思います。どうすればいいですか?

コマンドを実行するたびに新しいコマンドを開くのではなく、同じcmdウィンドウで一連のコマンドを実行するより良い方法を誰かが知っている場合は、お知らせください。

役に立ちましたか?

解決

開いているウィンドウをJavaから制御することはできません。ただし、次の2つのソリューションをお勧めします。

最初

Runtime.exec("cmd /c start /MIN ...")

/ MINパラメーターは、ウィンドウが表示されないようにします。

2番目:呼び出す必要があるすべてのアプリケーションを同じバッチファイル内に配置し、一度だけ呼び出します。 :-)

他のヒント

スタートを使用しないでください。別のウィンドウが開きます

置換:

Runtime.exec("cmd /c start....")

with:

Runtime.exec("cmd /c ....")

cmdウィンドウが必要な理由

コマンドをJavaで直接実行し、出力をキャプチャしてローカルウィンドウに表示します(必要な場合)。

プログラムからのすべての出力を消費しないと、停止する可能性があります。また、stdout、stderr、およびstdinストリームを閉じることを忘れないでください。ファイルハンドルがリークする可能性があります(一部のUnix OSの一部のJDKではそうです... Windows、知っています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top