java调用exe,及调用bat不成功的解决办法

开门见山的说,文件目录如下

想调用123.exe,但是尝试了几次调用不到,然后写了个bat。初始内容如下

@echo off
D:

cd test
"123.exe"

  双击可以运行,但是java代码无法调用,怪事。于是,辗转反侧,苦思冥想,后来发现压根就没进入这个目录。(过程省略),解决办法:更改bat如下

cd /d %~dp0
@echo off
"123.exe"

  %~dp0  的具体用法去搜一下就晓得了。结果:成功了。调用代码如下:

public class testBat {
	public void runbat(String batName) {
        try {
            Process ps = Runtime.getRuntime().exec(batName);
            ps.waitFor();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("调用成功");
    }

    public static void main(String[] args) throws IOException {
    	testBat test1 = new testBat();
        String batName = "D:\test\a.bat";
        test1.runbat(batName);
    }
}

  

原文地址:https://www.cnblogs.com/bpjj/p/11218560.html