private void Run (){
Runtime rt = Runtime.getRuntime();
String filepath = "D:\\test.bat"; 
try {
rt.exec("cmd /c start" + "' '" + filepath);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}test.bat
echo ■test
call test.exe 5 4
为什么啊?

解决方案 »

  1.   

    rt.exec(filepath);在exec方法里直接放路径就行了
      

  2.   

    把你要执行的程序的代码    cmd /c start   直接写到文件里面   
      

  3.   

    rt.exec("cmd /c start " + filepath);就可以了吧。。为什么要加单引号
      

  4.   

    我改成这样了private void Run (){
    Runtime rt = Runtime.getRuntime();
    String filepath = "D:\\test.bat"; // 会报错说找不到test.bat文件!!
    // 如果不带路径的话,test.bat,就能调用成功,结果也能出来。
    try {
    rt.exec("cmd /c start " + filepath);//请问一下 start是什么参数啊?跟找文件的路径有关系吗
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }test.bat
    echo ■test
    call test.exe 5 4
      

  5.   

    跟路径没有关系,而且用绝对路径更没有关系了。
    你的test.bat是在D:的根目录下?
      

  6.   

    现在是在eclipse的根目录下
    刚才String filepath = "D:\\test.bat";的时候是放在D盘根目录下
      

  7.   

    只要有不可能报找不到test.bat的你自己再仔细检查检查吧
      

  8.   

    弹出的dos窗口是这样的
    D:\eclipse4.2>echo test
    test
    D:\eclipse4.2>call text.exe 4 5
    :4
    :5
    为啥它默认去找eclipse目录去了尼?
      

  9.   

    D:\eclipse4.2这个路径取决于你执行cmd命令的java文件所在的目录
      

  10.   

    是这样啊。
    因为test.bat里要call test.exe,这两个文件都放D:\eclipse4.2的话,就能顺利执行
    要是都放D:\,就说test.exe不是内部/外部命令咋办?
      

  11.   

    那就只能改test.bat文件了
    最上面加上cd d:
      

  12.   

    换一种方法
    用ProcessBuilder也是一样,都是bat必须在eclipse下才能执行,是我哪里没配置好吗?怎么办呢?