为了账号安全,请及时绑定邮箱和手机立即绑定

java里Runtime.getRuntime("cmd /c start......")问题,如下

java里Runtime.getRuntime("cmd /c start......")问题,如下

拉莫斯之舞 2021-12-02 07:07:40
若是start 后面的文件名包含'&'字符则文件打不开,有什么方法可以打开吗?如:1tbiDQTTPkojSUP0MQAAsC6364f74ft7aad140f8ede&690.jpg则提示1tbiDQTTPkojSUP0MQAAsC6364f74ft7aad140f8ede文件不存在,去掉了'&'后的所有字符。望高手赐教,我没有财富值了,不能给分了,还望见谅
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

String []cmdarray = new String[4];
cmdarray[0] = "cmd";
cmdarray[1] = "/c";
cmdarray[2] = "start";
cmdarray[3] = "c:/err&or.jpg".replace("&", "^&");
Runtime.getRuntime().exec(cmdarray);
&在cmd中作为关键字保留,还有空格等 你最好都转义一下 前面加^ 就行

查看完整回答
反对 回复 2021-12-06
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

可以执行一个,不过好像一次执行不了多个。。

你要多调用几次。。

类似,你要调用 ipconfig ,再调用 ping

可以试试如下代码,我已经调试通过:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;

public class Test {

public static void main (String[] args) {
excuteCommand("ipconfig");
excuteCommand("ping 10.141.26.50");
}

public static void excuteCommand(String command)
{

Runtime r = Runtime.getRuntime();
Process p;
try {

p = r.exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String inline;
while ((inline = br.readLine()) != null) {
System.out.println(inline);

}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}



查看完整回答
反对 回复 2021-12-06
  • 2 回答
  • 0 关注
  • 396 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信