今天需要在Java代码中启动之前导出的一个应用产品,即exe文件,查看网上资料,起初使用了如下的方式:
这个可能是最通用的方式了,但启动的过程那是相当的慢,相等上十几,几十秒才有个动静。后来也不知道出了什么问题,测量调用的时候,总是弹出个框,说缺少什么companion library 然后就罢|工不启动了。
无奈到网上找到另外的一种方式:
这样是调用cmd.exe然后再传入参数,使用cmd启动exe文件,但失败。
后来重起电脑,仍旧使用第一种方式,凑合着用呗,反正无聊的一项目。
====以下比以上晚写了一天====
使用第一种方法,启动的速度实在是慢到人神共愤的程度了,于是改用第二种方法。
在我的项目中:
[quote]wkspacePth=/D:/My IDE/my.exe[/quote]
而cmd 执行命令需要[quote]D:\"My IDE"\my.exe -console[/quote]
因此,需要将第一个"/"去掉后,将"/"转换为"\",同时为了考虑冒号的情况,对所有的\变成"\"的形式,
最后cmd执行的命令为[quote]D:"\"My IDE"\"my.exe -console[/quote],可以很快的正常运行
Runtime.getRuntime().exec(wkspacePth + "/ReaderDevice.exe");
这个可能是最通用的方式了,但启动的过程那是相当的慢,相等上十几,几十秒才有个动静。后来也不知道出了什么问题,测量调用的时候,总是弹出个框,说缺少什么companion library 然后就罢|工不启动了。
无奈到网上找到另外的一种方式:
Runtime.getRuntime().exec("cmd.exe /c start D:/\"Sample
Product\"/ReaderDevice.exe");
这样是调用cmd.exe然后再传入参数,使用cmd启动exe文件,但失败。
后来重起电脑,仍旧使用第一种方式,凑合着用呗,反正无聊的一项目。
====以下比以上晚写了一天====
使用第一种方法,启动的速度实在是慢到人神共愤的程度了,于是改用第二种方法。
在我的项目中:
[quote]wkspacePth=/D:/My IDE/my.exe[/quote]
而cmd 执行命令需要[quote]D:\"My IDE"\my.exe -console[/quote]
因此,需要将第一个"/"去掉后,将"/"转换为"\",同时为了考虑冒号的情况,对所有的\变成"\"的形式,
最后cmd执行的命令为[quote]D:"\"My IDE"\"my.exe -console[/quote],可以很快的正常运行