开发者社区> 问答> 正文

怎么在java中执行linux 命令 netstat -nat|grep -i "80"|wc -l

鄙人用这一段代码执行得到值为null ,在linux命令端执行可以得到值,请各位指点一二

public static Object exCmd2(String cmd) {
        try {
            Process process = Runtime.getRuntime().exec(cmd);
 
            InputStreamReader ir = new InputStreamReader(
                    process.getInputStream());
            LineNumberReader input = new LineNumberReader(ir);
 
            String line;
            while ((line = input.readLine()) != null) {
                System.out.println(line);
            }
            return null;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return null;
}

展开
收起
小旋风柴进 2016-03-05 13:59:32 4324 0
1 条回答
写回答
取消 提交回答
  • 或许这就是你想要的

    package question.save;
     
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;
     
    /**
     * java在linux环境下执行linux命令,然后返回命令返回值。
     * @author lee
     */
    public class ExecLinuxCMD {
     
        public static Object exec(String cmd) {
            try {
                String[] cmdA = { "/bin/sh", "-c", cmd };
                Process process = Runtime.getRuntime().exec(cmdA);
                LineNumberReader br = new LineNumberReader(new InputStreamReader(
                        process.getInputStream()));
                StringBuffer sb = new StringBuffer();
                String line;
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                    sb.append(line).append("\n");
                }
                return sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
     
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String pwdString = exec("pwd").toString();
            String netsString = exec("netstat -nat|grep -i \"80\"|wc -l").toString();
             
            System.out.println("==========获得值=============");
            System.out.println(pwdString);
            System.out.println(netsString);
        }
     
    }

    输出结果:

    /home/lee/program/workspace/java/test
    20
    ==========获得值=============
    /home/lee/program/workspace/java/test
     
    20
    2019-07-17 18:53:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载