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

Java中怎么调用exe文件?
public class CallExe{ 

  public static void main(String args[]){ 

  Runtime rn=Runtime.getRuntime(); 

  Process p=null; 


  try{ 

  p=rn.exec("cmd.exe /c helloWorld.exe"); 

  }catch(Exception e){ 

  System.out.println("Error exec helloWorld!"); 

  } 

  } 



看网上的资料,提供了这种调用exe文件的方法。但我试过,exe文件没有执行,然后,我又试着把helloWorld.exe换成 notepad 或者 某个txt文件,能正常执行。

请各位指教指教,怎样才能正常执行exe文件。


------解决方案--------------------
你这个helloWorld.exe确实存在么?

是在windwos环境变量path能找到的地方么?
------解决方案--------------------
Java code
import java.io.IOException;

public class Ping{

    /**
     * @param args
     * String的split方法也是可以分割字符串的
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {        
            java.lang.Runtime.getRuntime().exec("cmd.exe /c start D:\\test.exe");//这儿
            process.waitFor();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }
}

------解决方案--------------------
Java code
import java.io.IOException;

public class Ping{

    /**
     * @param args
     * String的split方法也是可以分割字符串的
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {        
            Process p=java.lang.Runtime.getRuntime().exec("cmd.exe /c start E:\\_WorkBench\\HelloWorld\\HelloWorld.exe");//注意这里
            p.waitFor();//注意这里
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }
}