Apache Commons Exec 工具包的使用

在没有使用这个工具包之前 我都手写代码去执行linux命令的,因为自己写代码去执行linux返回的信息不全,因为写得很简单只是调用没有用线程去等待信息的返回,也没有实现失效时间,后来想自己实现但是在无意间找到了这个工具包,能实现我的需求,当时很兴奋。

commons exec下载路径

版本下载1.3的版本即可,其实也只有一个版本可下载

1.简单的命令执行

public static void execLinuxCommand(String command){

  if(StringUtils.isEmpty(command)){

    LOG.info("执行的Linux命令不能为空");

    return ;

  }

  //定义命令行对象

  CommandLine commandLine = new CommandLine(command);

  try{

    //定义执行器对象

    Executor executor = new DefaultExecutor();

    //如果在执行命令结束后发生异常,是因为没有设置结束标识值

    executor.setExitValue(1);

    executor.execute(commandLine);

  } catch (Exceptiion ex){

    LOG.info("执行Linux命令失败",ex);

  }

}

2.将执行命令结果信息

try{

  //定义执行结果信息输出

  ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

  //定义失效时间(单位/亳秒)

  ExecuteWatchdog watchdog = new ExecuteWatchdog(3*1000);

  PumpStreamHandler streamHandler = new PumpStreamHandler(byteStream);

  execute.setStreamHandler(streamHandler);

  execute.setWatchdog(watchdog);

}catch(Exception ex){

  

}

在定义StreamHandler后他内置了打印的方法

时间: 2024-10-20 00:04:10

Apache Commons Exec 工具包的使用的相关文章

Apache commons exec 简介和简单ping命令方法调用实现

Apache commonsexec提供一些常用的方法用来执行外部进程.Apache commons exec库提供了监视狗Watchdog来设监视进程的执行超时,同时也还实现了同步和异步功能. Apache commonsexec涉及到多线程,比如新启动一个进程,Java中需要再开三个线程来处理进程的三个数据流,分别是标准输入,标准输出和错误输出. 需要使用该功能需要引入commons-exec-1.3.jar包,目前最新的版本为1.3版本. 在日常工作和生活中,我们经常需要用到网络,网络有时

利用Apache commons exec 实现指定应用打开对应文件

在实际工作中,我们有时候需要指定某一个应用,打开某一个文件.比如用播放器打开一个MP3音乐文件,用记事本打开一个文本文件.不过有的应用需要一些额外的参数,在具体使用的时候要注意. package test.ffm83.commons.exec; import org.apache.commons.exec.CommandLine; importorg.apache.commons.exec.DefaultExecutor; importorg.apache.commons.exec.Execut

Java执行外部程序(Apache Commons Exec)

之前使用Runtime.getRuntime().exec调用外部程序,在Tomcat下会有当前线程一直等待的现象.当时为了解决这个问题,使用新建线程接收外部程序的输出信息,详情请看博客http://blog.csdn.net/accountwcx/article/details/46785437. 后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个类库提供非阻塞方法调用外部程序. 官方网址 http://commons.apache.org/proper/

Java运行外部程序(Apache Commons Exec)

之前使用Runtime.getRuntime().exec调用外部程序.在Tomcat下会有当前线程一直等待的现象. 当时为了解决问题,使用新建线程接收外部程序的输出信息.详情请看博客http://blog.csdn.net/accountwcx/article/details/46785437. 后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个类库提供非堵塞方法调用外部程序. 官方网址 http://commons.apache.org/proper/c

apache commons Java包简介

更多信息,请参考:http://commons.apache.org/ 一.Commons BeanUtils说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 二.Commons CLI说明:这是一个处理命令的工具.比如main方法输入的string[]需要解析.你可以预先定义好参数的规则,然后就可以调用CLI来解析. 三.Commons Codec说明:这个工具是用来编码和解码的,包括Base64,URL,Sound

Apache Commons介绍(转载)

一.Commons BeanUtils说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 二.Commons CLI说明:这是一个处理命令的工具.比如main方法输入的string[]需要解析.你可以预先定义好参数的规则,然后就可以调用CLI来解析. 三.Commons Codec说明:这个工具是用来编码和解码的,包括Base64,URL,Soundx等等.用这个工具的人应该很清楚这些,我就不多介绍了. 四.Common

Apache Commons

官方链接走起 http://commons.apache.org/ Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成的东西,我只是做了一个汇总整理. Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils

Apache commons——Apache旗下的通用工具包项目

Apache Commons是Apache旗下的一个开源项目,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动 这里是Apache commons的官方网站 下面是工具的简单介绍: Components   Attributes Runtime API to metadata attributes such as doclet tags. BCEL Byte Code Engineering Library - analyze, create, and manipulate

Apache Commons工具包介绍

Apache  Commons工具包介绍 Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问 http://jakarta.apache.org/commons/index.html BeanUtils  Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt  Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain  Chain 提供实现组织复杂的处理流程的"责