iteye_6073 2013-04-02 13:08
浏览 946
已采纳

java调用shell(ps -ef | grep )问题

shell:

ps -ef | grep 'DevCfg_Cli.pl 51964 ZYYC00002'

[b]在控制台输入,输出正常[/b]
root 3226 3088 0 12:51:04 pts/4 0:00 grep DevCfg_Cli.pl 51964 ZYYC0000

[b]用java Runtime 调的时候,报[/b]

用法:ps [ -aAdeflcjLPyZ ] [ -o 格式 ] [ -t 项列表 ]
[ -u 用户列表 ] [ -U 用户列表 ] [ -G 组列表 ]
[ -p 进程列表 ] [ -g 程序组列表 ] [ -s 标识符列表 ] [ -z 区域列表 ]
'格式' 是一个或者更多的:
user ruser group rgroup uid ruid gid rgid pid ppid pgid sid taskid ctid
pri opri pcpu pmem vsz rss osz nice class time etime stime zone 区域 ID
f s c lwp nlwp psr tty addr wchan fname comm args projid project pset

[code="java"]
public static String exec(String cmd,String encoding) {
StringBuffer sb1;
StringBuffer sb2;
sb1 = new StringBuffer();
sb2 = new StringBuffer();
String temp1 = "";
String temp2 = "";
Runtime rt = Runtime.getRuntime();
try {
System.out.println("[===============执行命令==========]:"+cmd);
Process p = rt.exec(cmd);
BufferedReader bufferedReader1 = new BufferedReader(
new InputStreamReader(p.getInputStream(),encoding));
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(p.getErrorStream(),encoding));

        while ((temp1 = bufferedReader1.readLine()) != null) {
            sb1.append(temp1);
            System.out.println(temp1);
        }

        while ((temp2 = bufferedReader2.readLine()) != null) {
            sb2.append(temp2);
            System.err.println(temp2);
        }

        p.waitFor();
        return sb1.toString();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return sb1.toString();
}[/code]
  • 写回答

2条回答 默认 最新

  • yuhang_java 2013-04-02 15:21
    关注

    把命令写成sh文件试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行