日期:2014-05-20  浏览次数:20783 次

runtime.exec 能否运行Jar文件
我写了段代码想在子进程中运行Jar文件.但是在运行时出错说:Unable   to   access   jarfile   dd.jar.请各位大哥帮帮忙.谢谢!!
代码如下:
package   JavaStudy;

import   java.io.*;

public   class   Errout   {

/**
  *   @param   args
  *   @throws   IOException  
  */
public   static   void   main(String[]   args)   throws   IOException   {
//   TODO   Auto-generated   method   stub
Process   p   =   Runtime.getRuntime().exec( "java   -jar   dd.jar ");
Process   pp   =   Runtime.getRuntime().exec( "java   test ");
BufferedReader   err   =   new   BufferedReader(new   InputStreamReader(p.getErrorStream()));
String   line;
while((line   =   err.readLine())   !=   null)
{
System.out.println(line);
}

BufferedReader   err1   =   new   BufferedReader(new   InputStreamReader(pp.getInputStream()));
String   lines;
while((lines   =   err1.readLine())   !=   null)
{
System.out.println(lines);
}
}

}

运行结果:
Unable   to   access   jarfile   dd.jar
你好!这是我的第一个程序!


------解决方案--------------------
Runtime.getRuntime().exec( "java -jar dd.jar ");
------解决方案--------------------
又见猫咪~~
楼上正解!基本上可以认为exec的参数和你在控制台里输入的命令一致
------解决方案--------------------
路径问题。
Runtime.getRuntime().exec( "java -cp . -jar dd.jar ");//如果dd.jar在当前目录其他类似
如果在系统的CLASSPATH你设置了dd.jar的路径就可以这样了
Runtime.getRuntime().exec( "java -jar dd.jar ");
------解决方案--------------------
楼上正解,要不写dd.jar的绝对的路径,要不加classpath