Apache Commons Exec 是 Apache 上的一个 Java 项目,提供一些常用的方法用来执行外部进程,如下面代码所示:
String line = "AcroRd32.exe /p /h " + file.getAbsolutePath(); CommandLine commandLine = CommandLine.parse(line); DefaultExecutor executor = new DefaultExecutor(); executor.setExitValue(1); ExecuteWatchdog watchdog = new ExecuteWatchdog(60000); executor.setWatchdog(watchdog); int exitValue = executor.execute(commandLine);
转自: Apache commons exec框架的简介说明 下文笔者讲述Apache commons exec框架的简介说明,如下所示 Apache commmons exec框架的功能 Apache commons exec框架是对 Process进行封装 对外提供如下功能: 为Process的stdin, stdout, stderr重定向流 而不是File
我们在实际学习和开发中,总避免不了,希望能够直接通过Java运行一些系统相关的脚本之类的,所以,虽然可以借助 Runtime.getRuntime().exec调用外部程序,Runtime.getRuntime().exec是java原生态的命令,而Apache commons-exec封装一些常用的方法用来执行外部命令。例如我们想得到当前windows目录下的文件信息,在cmd命令行下的命令是d
apache进程框架commons-exec,Java pom.xml引用: <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-exec</artifactId> <version>1.3</version>
之前使用Runtime.getRuntime().exec调用外部程序,在Tomcat下会有当前线程一直等待的现象。当时为了解决这个问题,使用新建线程接收外部程序的输出信息,详情请看博客http://blog..net/accountwcx/article/details/46785437。 后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个类库提供非阻塞方法
网上竟然搜不到详细一点的帖子,估计大家用JAVA去管理进程的场景比较少吧,只好自己总结一个。 Java管理进程,API级别是使用:Runtime.getRuntime().exec(“shell”);这个方法。 Java在执行命令时输出到某个Buffer里,这个Buffer是有容量限制的,如果满了一直没读取,就会一直等待,造成进程锁死的现象。 使用Apache Commons Exec,应该可
首先在pom.xml中添加Apache Commons Exec的Maven坐标: org.apache.commons commons-exec 1.3 示例代码: import java.io.IOException; import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.DefaultExecut
Java管理进程,API级别是使用:Runtime.getRuntime().exec(“shell”);这个方法。 Java在执行命令时输出到某个Buffer里,这个Buffer是有容量限制的,如果满了一直没读取,就会一直等待,造成进程锁死的现象。 使用Apache Commons Exec,应该可以避免很多类似的坑。 它提供一些常用的方法用来执行外部进程,另外,它提供了监视狗Watchdog来
Apache commonsexec提供一些常用的方法用来执行外部进程。Apache commons exec库提供了监视狗Watchdog来设监视进程的执行超时,同时也还实现了同步和异步功能。 Apache commonsexec涉及到多线程,比如新启动一个进程,Java中需要再开三个线程来处理进程的三个数据流,分别是标准输入,标准输出和错误输出。 需要使用该功能需要引入commons-exec
在没有使用这个工具包之前 我都手写代码去执行linux命令的,因为自己写代码去执行linux返回的信息不全,因为写得很简单只是调用没有用线程去等待信息的返回,也没有实现失效时间,后来想自己实现但是在无意间找到了这个工具包,能实现我的需求,当时很兴奋。 commons exec下载路径 版本下载1.3的版本即可,其实也只有一个版本可下载 1.简单的命令执行 public static void
之前使用Runtime.getRuntime().exec调用外部程序。在Tomcat下会有当前线程一直等待的现象。 后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个类库提供非堵塞方法调用外部程序。 Commons Exec对调用外部程序进行了封装,仅仅须要少量代码就可以实现外部程序调用。如运行命令"AcroRd32.exe /p /h c:\help.pd
public String ping(String ip) { try { String command = "ping "+ip; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ByteArrayOutputStre
前言 在调用SHELL命令或DOS命令时,使用Runtime.getRuntime().exec(command);这个方法。但是执行某些命令时,程序可能就卡在那了,需要在执行的过程中新开启几个线程来不断地读取标准输出,以及错误输出,这样很不方便,好在commons-exec提供了更加友好的使用方式。 一、同步调用 commons-exec的command不需要考虑执行环境,比如windows下不