我有两个jar包,假设为jar1和jar2,
一开始程序是用jar1运行的,我想用户点击“开始”按钮后,可以再启动一个JVM运行jar2,我用Runtime.getRuntime().exec("cmd /c java -jar jar2");,但不行,请问有什么好的方法?

解决方案 »

  1.   

    还有,怎样获得它的返回值,即System.exit(X)中的X值。试用在VC中调用JAVA程序没有问题,也可以拿到返回值。
      

  2.   

    在jdk5上,有一新的进程创建方法,ProcessBuilder。可以获得进程返回值。
      

  3.   

    Runtime.getRuntime().exec("jar2.jar");
    //就OK了!不用去java -jar jar2.jar
    //系统会看找虚拟机!
      

  4.   

    之前想错了一点,其实直接Runtime.getRuntime().exec("java -jar jar2");应该可以,不必加cmd /c。因为java命令跟time,date这么命令不同。在JDK1。4下难道无法获取另一个进程的返回值?
      

  5.   

    exec本来就有返回值的啊
    public Process exec(String command) throws IOException
      

  6.   

    可以用exec返回的Process对象来处理跟它执行有关系的一切东西,具体看文档.
      

  7.   

    Process p=Runtime.getRuntime().exec("jar.jar");
    int exitInt=p.exitValue();//这个就是程序返回的值.