0

このような Runtime.exex() を使用して、2 つの別々のコマンド ウィンドウ (Windows 7 環境) で 2 つの異なる Java プログラムを呼び出しています。

   public class Invoke{
         public void main(...){
            String[] class1 = {"start", "java", "A"}; //Assume A.java is already compiled
            String[] class2 = {"start", "java", "B"}; //Assume B.java is already compiled
            try{
            Runtime.getRuntime().exec(class1);
            Runtime.getRuntime().exec(class2);
            }catch(Exception e){
               e.printStackTrace();
             }
         }
   }

しかし、それは私に例外を与えます

       java.io.IOException: Cannot run program "start": CreateProcess error=2, The syst
       em cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at initialConfig.StartApp.win_startProg(StartApp.java:95)
    at initialConfig.StartApp.main(StartApp.java:134)
     Caused by: java.io.IOException: CreateProcess error=2, The system cannot find th
     e file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)

これら 2 つのプログラムを呼び出して、Runtime.exec() でこれらのバットを使用するには、別の .bat ファイルを作成する必要がありますか? 助けてください。ありがとう。

4

1 に答える 1

1

startの内部コマンドだと思いますcmd.exe。だから試してください:

String[] class1 = {"cmd.exe", "/c", "start", "java", "A"};

これにより、別のプロセスとウィンドウで Java が呼び出され、Java が終了するのを待ちません。

于 2013-11-03T07:10:24.967 に答える