linux exec ps,windows上通过Runtime.getRuntime().exec.()执行linuxshell脚本

windows下通过Runtime.getRuntime().exec.()执行linuxshell脚本

执行Runtime.getRuntime().exec("ps -ef|grep indexer");

一直抛ERROR: Unsupported SysV option.

于是便去就按照这个error信息去百度、google找答案,未果。。。

看到网上相关问题解决方法(如下),我尝试Runtime.getRuntime().exec("eval ps -ef|grep indexer");

再次失败。。。抓狂中。。。

CMND="ps -ef"

$CMND

是可以正常执行地。

CMND="ps -ef|grep sshd"

$CMND

就会得到上面的错误了。

因为 "ps -ef|grep sshd" 不会被再次解析,管道符失效。

eval $CMND

这样就可以再解析一次。

PS:注意单引号,双引号,转义。

后经高人指点,恍然大悟。。。

linux下:

String[] command = { "/bin/sh", "-c", cmmd };

Process ps = Runtime.getRuntime().exec(command);

windows下:

String[] command = { "cmd", "/c", cmmd };

Process ps = Runtime.getRuntime().exec(command);

总结:没有抓住问题的关键,除了通过ERROR去找解决方法外,还可以通过问题本身或参考相关问题的解决方法。

相关文章:

1.http://bzhang.iteye.com/blog/407846

2.http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值