java调用了exe就意味着失去了跨平台。调用的过程是,先得到当前的runtime,然后调用runtime的exec()方法,在exec()传入的是字符串参数,这个参数很重要,该有空格的地方必须有空格,否则就不能正常调用。这个方法返回一个进程(progess)。 

如:

调用ping命令:process = Runtime.getRuntime().exec( "cmd /c " + "ping"+" "+ip_host);

调用jad工具:Runtime.getRuntime().exec("jad.exe -o -d "+path2+" -s java "+path1);

public class TransferExe
  {
  public static void main(String[] args)
  {
  openWinExe();
  openExe();
  }
  //用Java调用windows系统的exe文件,比如notepad,calc之类
  public static void openWinExe()
  {
  Runtime rn = Runtime.getRuntime();
  Process p = null;
  try{
  String command = "notepad";
  p = rn.exec(command);
  }
  catch (Exception e)
  {
  System.out.println("Error win exec!");
  }
  }
  //调用其他的可执行文件,例如:自己制作的exe,或是自己下载安装的软件
  public static void openExe()
  {
  Runtime rn = Runtime.getRuntime();
  Process p = null;
  try {
 
     //Runtime.getRuntime().exec("jad.exe -o -d "+path2+" -s java "+path1);
 
  p = rn.exec("/"D:/QQ2010.exe/"");
 
  }
  catch (Exception e)
  {
  System.out.println("Error exec!");
  }
  }
  }