2017-11-19 3 views
0

私はこの件に関するいくつかの記事を読んだことがありますが、私はそれを自分で実行するのに困っています。私はオフにエコーを使用してコマンドラインを作成するプログラムを作成しようとしているが、これは現時点で私が使用しているコマンドです:エコーをオフにしてコマンドラインを作成

Runtime.getRuntime().exec("cmd.exe /q /k start"); 

は今、私は(rt.execを使用して知っている)は、一般的なものですしかし、これは大規模なプログラムではありません。ちょっと小さなテキスト&オブジェクトベースのJavaでのRPG私は友人と楽しくしています。

現在、コマンドラインは正しく表示されていますが、通常はcmd.exeでコマンドラインを開いたように表示されます。私がここで理解していないものがありますか?

+0

期待される動作は何ですか?観察している動作は何ですか? –

+0

@JosAngelGeorge私が言ったように、コマンドラインは正しく表示されています。私の質問はどうやってコマンドラインを表示させることができますか? – iViscosity

答えて

1

cmd.exe /q /k startと入力すると、cmdのプロンプトが2つ表示されます(cmd.exestart)。 startは、新しいシェルプロンプトを開きますが、静かなものではありません(startの詳細については、ここを参照してください:https://technet.microsoft.com/en-us/library/cc770297(v=ws.11).aspx)。

私はあなただけで1つのCMDプロンプトを必要とすると仮定し、その代わりにこれを試してみてください。

Runtime.getRuntime().exec("cmd.exe /q");

編集:

私はそのcmd.exeを考慮していませんでしたが、後にRuntime.getRuntime().execによって実行されて終了。
いくつかの試行錯誤の後、これは動作するはずですが:start

Runtime.getRuntime().exec("cmd.exe /q /k start title /i");

/iパラメータは、それが呼び出されたところから環境を継承するためにそれを伝え、この環境は静かで、/qパラメータのおかげでへcmd.exe

+0

実行すると、コマンドプロンプトが開きません。今はテストのメインメソッドでこれを実行していますが、デバッグ用のprintln文がいくつかありますが、このexecではコマンドプロンプトを実行しないですべての文を出力します。 – iViscosity

+0

@iViscosityいくつかの試行錯誤の末、これはうまくいけばうまくいきます: 'Runtime.getRuntime()。exec(" cmd.exe/q/k start title/i ");' - それに応じて答えを更新しました。 HTH – valiano

+0

それでもコマンドプロンプトが起動しますが、C:\ Users \ ...があり、手動でエコーをオフにしてエコーを消さなければなりません。私は主なクラスを実行する.batファイルをパッケージ化することを考えていますが、私はこれをどうやってやれるか知りたいと思っています。 – iViscosity

関連する問題