2016-05-26 4 views
1

私はffmpegを使って自分自身を助けるアプリを書いています。私はそれを動作させましたが、cmd.exeはバックグラウンドで実行されます。 ここで私はそれをJavaコードから呼び出す方法です。Javaコードから呼び出されたCmd.exeは、バックグラウンドで実行され、ウィンドウとして表示されるようにする方法はありますか?

String[] command = new String[] {"cmd.exe", "/c", "ffmpeg ...etc"}; 
System.out.println(command[2]); 
Process p = Runtime.getRuntime().exec(command); 

私が見つけたすべての情報はバックグラウンドでコマンドを実行していたものですが、私は完全に反対のものが必要です。 どうすればいいですか?

+0

[java execからの出力を読む](http://stackoverflow.com/questions/8149828/read-the-output-from-java-exec)の可能な複製 – noshusan

+0

リンクありがとうございます。私はプロセスビルダを使用して出力ストリームをリダイレクトできることを知っています。私の目標は、cmdウィンドウを開くことです。 –

+0

Javaアプリケーションは、ユーザーコンテキストで実行されているのか、サービスとして実行されていますか? –

答えて

0

私が理解しているように、 はコマンドプロンプトを開いたようにFFMPEGを実際に起動する方法を尋ねており、自分でコマンドを実行しました。

この場合、Windowsではコマンドプロンプトに実行可能ファイルを独自のプロセスとして開始するコマンドがあります。

String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"}; 
Process p = Runtime.getRuntime().exec(command); 

異なっ起こっていただきました!の簡単な説明は次のとおりです:

String[] command = new String[] {"cmd.exe", "/c", "C:\Windows\System32\calc.exe"}; 

を使用する場合、Javaは、新しい子プロセスを作成し、適切にこれをやって試してみてください 'スタート'

命名この子プロセスでffmpeg(この例ではCalculator)コマンドを起動するコマンドを実行するjava.exe自体。

explorer.exeの

EDITから起動しているかのように完全独自のプロセスで、それ以外の場合は

String[] command = new String[] {"start", "C:\Windows\System32\calc.exe"}; 

を使用してffmpegのを開始します(または、もう一度ここで電卓):

Iドン私のWindowsコンピュータは機能しないので、現時点でこれをテストする能力はありません。 それは次のようにあなたがcmd.exeのでstartコマンド自体を前に付ける必要があることも可能である:私の知識いずれかの方法はず仕事

String[] command = new String[] {"cmd.exe", "/c", "start", "C:\Windows\System32\calc.exe"}; 

しかし

Edit2:説明をより説明しました。

関連する問題