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

若是start 后面的文件名包含'&'字符则文件打不开,有什么方法可以打开吗?如:1tbiDQTTPkojSUP0MQAAsC6364f74ft7aad140f8ede&690.jpg则提示1tbiDQTTPkojSUP0MQAAsC6364f74ft7aad140f8ede文件不存在,去掉了'&'后的所有字符。
望高手赐教,我没有财富值了,不能给分了,还望见谅

拉莫斯之舞
浏览 408回答 2
2回答

慕村225694

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中作为关键字保留,还有空格等 你最好都转义一下 前面加^ 就行

吃鸡游戏

可以执行一个,不过好像一次执行不了多个。。你要多调用几次。。类似,你要调用 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 blocke.printStackTrace();}}}
打开App,查看更多内容
随时随地看视频慕课网APP