java Runtime.getRuntime().exec 特殊字符导致操作错误问题

在这里可以讨论Java开发技术,插件应用等方面技术

版主: jvip_chen

回复
头像
jvip_chen
社区版主
社区版主
帖子: 136
注册时间: 2019年 1月 5日 13:36 星期六

java Runtime.getRuntime().exec 特殊字符导致操作错误问题

帖子 jvip_chen » 2019年 11月 4日 17:28 星期一

错误的方法:

代码: 全选

//command
private static final String command="ps aux | grep 'java -jar' | grep -v grep";
Process p = Runtime.getRuntime().exec(command);
原因:不会被再次解析,管道符失效

正确的办法:

linux下:

代码: 全选

String[] commands = { "/bin/sh", "-c", command };
Process ps = Runtime.getRuntime().exec(commands);

windows下:

代码: 全选

String[] commands = { "cmd", "/c", command};
Process ps = Runtime.getRuntime().exec(commands);

回复