java程序调用bat文件,运行后无反应,不报错也不出结果,高手来看看

跳蚤图 2012-09-21 12:00:49
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


为什么啊?
...全文
889 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
跳蚤图 2012-09-24
  • 打赏
  • 举报
回复
somebody help me
跳蚤图 2012-09-24
  • 打赏
  • 举报
回复
换一种方法
用ProcessBuilder也是一样,都是bat必须在eclipse下才能执行,是我哪里没配置好吗?怎么办呢?
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

把你要执行的程序的代码 cmd /c start 直接写到文件里面
[/Quote]
文件的内容已经定了,是不能改的......
有其他方法吗
清风de家 2012-09-21
  • 打赏
  • 举报
回复
把你要执行的程序的代码 cmd /c start 直接写到文件里面
清风de家 2012-09-21
  • 打赏
  • 举报
回复
rt.exec(filepath);

在exec方法里直接放路径就行了
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

那就只能改test.bat文件了。。。
最上面加上

cd d:
[/Quote]
哭%>_<%
菖蒲老先生 2012-09-21
  • 打赏
  • 举报
回复
那就只能改test.bat文件了。。。
最上面加上

cd d:
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

D:\eclipse4.2这个路径取决于你执行cmd命令的java文件所在的目录。。。
[/Quote]
是这样啊。
因为test.bat里要call test.exe,这两个文件都放D:\eclipse4.2的话,就能顺利执行
要是都放D:\,就说test.exe不是内部/外部命令。。。

咋办?
菖蒲老先生 2012-09-21
  • 打赏
  • 举报
回复
D:\eclipse4.2这个路径取决于你执行cmd命令的java文件所在的目录。。。
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
弹出的dos窗口是这样的
D:\eclipse4.2>echo test
test
D:\eclipse4.2>call text.exe 4 5
:4
:5


为啥它默认去找eclipse目录去了尼?
菖蒲老先生 2012-09-21
  • 打赏
  • 举报
回复
只要有不可能报找不到test.bat的。。。你自己再仔细检查检查吧。。。
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

跟路径没有关系,而且用绝对路径更没有关系了。
你的test.bat是在D:的根目录下?
[/Quote]
现在是在eclipse的根目录下
刚才String filepath = "D:\\test.bat";的时候是放在D盘根目录下
菖蒲老先生 2012-09-21
  • 打赏
  • 举报
回复
跟路径没有关系,而且用绝对路径更没有关系了。
你的test.bat是在D:的根目录下?
跳蚤图 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

rt.exec("cmd /c start " + filepath);就可以了吧。。

为什么要加单引号。。。
[/Quote]
我改成这样了

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
菖蒲老先生 2012-09-21
  • 打赏
  • 举报
回复
rt.exec("cmd /c start " + filepath);就可以了吧。。

为什么要加单引号。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧