10

次のコードを使用してWindowsでCMDアプリケーションを起動しようとしていますが、期待どおりに動作しません。さまざまなWebサイトのいくつかの例は、ProcessBuilder構造の引数としての「cmd」が機能することを示しています。

JavaアプリでWindowsでCMDアプリケーションを開くにはどうすればよいですか?

 public class JavaTest
 {
     public static void main(String[] args) 
     {
         ProcessBuilder pb = new ProcessBuilder("cmd");

         try 
         {
             pb.start();
             System.out.println("cmd started");
         } 
         catch (IOException e) 
         {
             System.out.println(e.getMessage());
         }  
     }
 }

存在しないアプリケーションを使おうとすると、実際にはエラーが出力されるため、実際には「CMD」が実行されます。しかし、CMDアプリケーションが期待どおりにポップアップしませんか?

4

3 に答える 3

15

ProcessBuilderで使用するには、次のようにコマンドを分離する必要があります。

final List<String> commands = new ArrayList<String>();                

commands.add("cmd.exe");
commands.add("/C");
commands.add("start");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.start();
于 2012-11-13T12:47:08.270 に答える
9

startコマンドを使用する必要があります。実際には、新しいコマンドプロンプトがポップアップ表示されないのですが、を使用して新しいコマンドプロンプトcmd.exeが確実に開始されていることを確認できますtask manager

ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start");

ただし、を使用して同じ機能を実現できRuntime.exec()ます。これにより、実際には新しいコマンドプロンプトが表示されます。

Runtime.getRuntime().exec("cmd.exe /C start");
于 2012-06-08T18:48:11.900 に答える
0

Windowsの場合は、このコマンドを使用してください

ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "ping -n 3 google.com");
于 2021-05-19T12:20:45.963 に答える