zoukankan      html  css  js  c++  java
  • java执行linux命令的工具类

    package com.starfast.common.util;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;
    
    /**
     * @author DUCHONG
     * @since 2018-05-04 10:57
     **/
    public class LinuxCmdUtils {
    
        static Logger logger= LoggerFactory.getLogger(LinuxCmdUtils.class);
    
        public  static boolean executeLinuxCmd(String cmd) {
    
            boolean result=false;
    
            System.out.println("got cmd : " + cmd);
            Runtime run = Runtime.getRuntime();
            //InputStream in=null;
            try {
                Process process = run.exec(cmd);
                //执行结果 0 表示正常退出
                int exeResult=process.waitFor();
                if(exeResult==0){
                    System.out.println("执行成功");
                    result=true;
                }
    
            }
            catch (Exception e) {
                logger.error("LinuxCmdUtils.executeLinuxCmd error",e);
            }
            return result;
        }
    
        /**
         * 获取linux命令执行的结果,cat 之类
         * @param cmd
         * @return
         */
        public static String getCmdResult(String cmd) {
    
            String result = "";
            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){
                    result=line;
                }
    
            } catch (java.io.IOException e) {
    
                System.err.println("IOException " + e.getMessage());
    
            }
            return result;
        }
    
        /**
         * grep 类的shell命令
         * @param cmdStr
         * @return
         */
        public static String getGrepCmdReturn(String cmdStr){
    
            String[] cmd = new String[3];
    
            cmd[0]="/bin/sh";
            cmd[1]="-c";
            cmd[2]=cmdStr;
    
            //得到Java进程的相关Runtime运行对象
            Runtime runtime = Runtime.getRuntime();
            StringBuffer stringBuffer=null;
            try
            {
                
                Process process = runtime.exec(cmd);
    
                BufferedReader bufferReader = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));
    
                 stringBuffer= new StringBuffer();
    
                String temp = null;
    
                while ((temp = bufferReader.readLine()) != null)
                {
                    stringBuffer.append(temp);
                }
                
    
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
    
            return  stringBuffer.toString();
        }
    
        public static void main(String[] args) {
    
            System.out.println(LinuxCmdUtils.getGrepCmdReturn("dmidecode -s system-serial-number|grep -v "#""));
        }
    }
    

      

  • 相关阅读:
    hdu 1998 奇数阶魔方(找规律+模拟)
    巧用百度Site App新组件为企业官网打造移动站
    POJ 1276 Cash Machine
    Unity3D中使用MiniJson解析json的例子
    设计模式读书笔记-----单例模式
    android 常用资料
    Objective-C之run loop详解
    icon 图标下载
    揭开Html 标签的面纱,忘不了的html .
    12157
  • 原文地址:https://www.cnblogs.com/geekdc/p/9234948.html
Copyright © 2011-2022 走看看