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 \"#\""));
}
}

  

java执行linux命令的工具类的更多相关文章

  1. Java 执行linux命令(转)

    转自 http://blog.csdn.net/a19881029/article/details/8063758 java程序中要执行linux命令主要依赖2个类:Process和Runtime 首 ...

  2. java执行linux命令

    package com.gtstar.collector; import java.io.BufferedReader;import java.io.IOException;import java.i ...

  3. ganymedssh2 java执行linux命令

    需要下载ganymed-ssh2-262.jar package ganymed; import java.io.BufferedReader; import java.io.IOException; ...

  4. java 执行linux命令

    原文地址: http://blog.csdn.net/xh16319/article/details/17302947 package scut.cs.cwh; import java.io.Inpu ...

  5. 利用java实现可远程执行linux命令的小工具

    在linux的脚本中,如果不对机器做其他的处理,不能实现在linux的机器上执行命令.为了解决这个问题,写了个小工具来解决这个问题. 后面的代码是利用java实现的可远程执行linux命令的小工具,代 ...

  6. Java程序执行Linux命令

    Java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...

  7. Java程序执行Linux命令(JSP运行其他程序)

    java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个 ...

  8. Java调用Linux命令执行

    调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Run ...

  9. java执行cmd命令和linux命令

    文章出处http://blog.csdn.net/xh16319/article/details/17302947 一:window下执行cmd指定 一:window下执行cmd指定 程序例子: [j ...

随机推荐

  1. JMeter设置Http代理对web或者app进行录制

    一.录制web 1.首先保证JMeter的安装环境都正确.启动JMeter:在安装路径的bin目录下双击jmeter.bat (例如:D:\apache-jmeter-2.13\bin) ​2.打开J ...

  2. PyCharm 的升级、设置快捷方式

    05. PyCharm 的升级以及其他 PyCharm 提供了对 学生和教师免费使用的版本 教育版下载地址:https://www.jetbrains.com/pycharm-edu/download ...

  3. 将一个jar包放到linux下定时执行

    将一个jar包放到linux下定时执行 1.在dbtodb文件夹下新建一个dbtodb.sh,脚本内容为: #!/bin/bash cd /usr/dbtodb/ java -jar dbtodb.j ...

  4. hdu 3410 单调栈

    http://acm.hdu.edu.cn/showproblem.php?pid=3410 Passing the Message Time Limit: 2000/1000 MS (Java/Ot ...

  5. Eclipse插件开发_学习_00_资源帖

    一.官方资料 1.eclipse api 2.GEF Developer's Guide 二. 精选资料 1.开发 Eclipse 插件 2.Eclipse, RCP, Plugin and OSGi ...

  6. 我所理解的Mongodb 的优势

    更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度.如果你需要加载大量低价值的业务数据,比如日志收集,那么MongoDB将很适合你的用例,但是必须避免在要求高事务安全的情景下使用 ...

  7. UVA - 11754 Code Feat (分块+中国剩余定理)

    对于一个正整数N,给出C组限制条件,每组限制条件为N%X[i]∈{Y1,Y2,Y3,...,Yk[i]},求满足条件的前S小的N. 这道题很容易想到用中国剩余定理,然后用求第k小集合的方法输出答案.但 ...

  8. java-08多态与异常处理

    1.运行以下代码: public class ParentChildTest { public static void main(String[] args) { Parent parent=new ...

  9. JSONP原理及实现跨域方式

    今天做页面时,后台给了个接口:https://a.a.com/a/a.json,我页面的上线地址是:http://b.b.com.显而易见,因为浏览器同源策略的限制,通过ajax无法无法取得json的 ...

  10. C++中rand()函数的用法

    1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数,可以表达为:int num = r ...