欢迎使用CSDN-markdown编辑器
2016-06-30 16:09
351 查看
/**
* commons-exec.jar
* 根据路径执行文件
* @param path
* @return
*/
public static String exec(String path){
/[b]****************java直接调用runtime****************************[/b]/
import java.io.IOException;
import java.io.InputStream;
public class InvokeBat2 {
public void runbat(String batName) {
try {
Process ps = Runtime.getRuntime().exec(batName);
InputStream in = ps.getInputStream();
int c;
while ((c = in.read()) != -1) {
System.out.print(c);// 如果你不需要看输出,这行可以注销掉
}
in.close();
ps.waitFor();
}
* commons-exec.jar
* 根据路径执行文件
* @param path
* @return
*/
public static String exec(String path){
if(StringUtil.isEmpty(path)){ return null; } try { //创建一个命令行 CommandLine cmdLine = CommandLine.parse(path); //参数一 cmdLine.addArgument("pararm_1"); //参数二 cmdLine.addArgument("pararm_2"); //执行流 DefaultExecutor executor = new DefaultExecutor(); //定义一组预期退出值 //executor.setExitValue(1); executor.setExitValues(null); //监管机构-监管进程执行时间 --单位为毫秒 ExecuteWatchdog watchdog = new ExecuteWatchdog(10); executor.setWatchdog(watchdog); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ByteArrayOutputStream errorStream = new ByteArrayOutputStream(); PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream,errorStream); executor.setStreamHandler(streamHandler); int ex = executor.execute(cmdLine); //拿到执行程序中输出内容 String out = outputStream.toString("gbk"); //拿到执行程序中执行异常内容 String error = errorStream.toString("gbk"); Log.info(CommonsExecUtil.class, "Method[exec]执行命令行文件名称:{},执行输出:{},执行异常信息:{},执行结果:{}", path,out,error,ex); } catch (IOException e) { e.printStackTrace(); } return null; } public static void main(String[] args) { exec("D:/svn/1.bat"); }
/[b]****************java直接调用runtime****************************[/b]/
import java.io.IOException;
import java.io.InputStream;
public class InvokeBat2 {
public void runbat(String batName) {
try {
Process ps = Runtime.getRuntime().exec(batName);
InputStream in = ps.getInputStream();
int c;
while ((c = in.read()) != -1) {
System.out.print(c);// 如果你不需要看输出,这行可以注销掉
}
in.close();
ps.waitFor();
} catch (IOException ioe) { ioe.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("child thread done"); } public static void main(String[] args) { InvokeBat2 test1 = new InvokeBat2(); String batName = "F:\\database_backup\\ngx_backup\\backup_ngx.bat"; test1.runbat(batName); System.out.println("main thread"); }
}
相关文章推荐
- java 执行命令、调用bat文件、调用外部程序的两种方法
- wxpython入门级笔记
- android-invalidate()源码
- 使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析
- 被改错的密码
- Python中functools模块的常用函数解析
- 82. Remove Duplicates from Sorted List II
- 百度地图的定位
- iOS的三种多线程技术 对比分析
- 系统级性能分析工具 — Perf
- Android通过json向MySQL中读写数据的方法详解【写入篇】
- 获取当前正在运行的虚拟机(Vmware Workstation),并对虚拟机进行控制
- AngularJS 常见面试问题
- linux创建桌面图标,和开始菜单栏图标
- Fail2ban 阻止暴力破解
- DataTables+Struts+Ajax技术的文件下载实现
- STM32的项目文件分组
- 项目二 下
- AndroidSweetSheet:ViewPager的实现(2)
- Linux 网络及服务