2012-06-19 102 views
2

我试图合并2个简单的程序,我对一个.jar进行了合并。我将两个.jars打包成一个新的并使用Runtime.getRuntime()。exec方法来执行它们。Java 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新手,不知道为什么会发生这种情况。我该如何解决?我想要执行这两个文件。

+0

你知道,如果第一个是不引发异常?你可以尝试打印堆栈跟踪! –

+0

你有一些例外吗? – JuanZe

回答

6

你的问题是你的第二个文件只有在第一次抛出异常时才会执行。您正在寻找这样的:

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 
    } 
    } 
} 
+0

+1您对原始代码的编辑改变了一切!我甚至没有看到重叠... –

+0

这就是为什么代码格式化实际上非常重要。它确立了清晰度!问题就会消失! –

相关问题