Java Runtime.getRuntime()。exec

时间:2012-06-19 17:21:59

标签: java runtime runtime.exec

我正在尝试将我制作的2个简单程序合并到一个.jar中。我将两个.jars打包成一个新的并使用Runtime.getRuntime()。exec方法执行它们。

代码:

public class main {
  public static void main(String[] args) {
    try {
      Runtime.getRuntime().exec("cmd /c proj1.jar");
    } catch(Exception exce){ 
      /*handle exception*/
      try {
        Runtime.getRuntime().exec("cmd /c proj2.jar");
      } catch(Exception exc){
        /*handle exception*/

      }
    }
  }
}

问题是只执行了proj1.jar而proj2.jar没有运行。我是java新手,不知道为什么会这样。我该如何解决?我想要两个文件都被执行。

1 个答案:

答案 0 :(得分:6)

你的问题是,如果第一个文件抛出一个exeception,你的第二个文件才会被执行。你正在寻找这个:

public class main {
  public static void main(String[] args) {
    try {
      Runtime.getRuntime().exec("cmd /c proj1.jar");
      Runtime.getRuntime().exec("cmd /c proj2.jar");
    } catch(Exception exce){ 
      /*handle exception*/
    }
  }
}

或者,如果你绝对必须单独处理例外,那么:

public class main {
  public static void main(String[] args) {
    try {
      Runtime.getRuntime().exec("cmd /c proj1.jar");
    } catch(Exception exce){ 
      /*handle exception*/
    }

    try {
      Runtime.getRuntime().exec("cmd /c proj2.jar");
    } catch (Exception e) {
      //handle the exception
    }
  }
}