`
uule
  • 浏览: 6359205 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

JAVA执行DOS命令

 
阅读更多
/**
	 * @param cmd ant命令
	 * 
	 * @return 执行日志
	 * 
	 * @exception 执行有错误会抛出AntExecException
	 */
	public static String execute(String[] cmd){
		// 标准输出
		InputStream standardInput = null;
		BufferedReader standardReader = null;
		// 错误输出
		InputStream errInput = null;
		BufferedReader errReader = null;
		
		StringBuilder standardMsg = new StringBuilder();
		StringBuilder errMsg = new StringBuilder();
		
		Process process = null;
		try {
			// 执行ant
			process = Runtime.getRuntime().exec(cmd);
			// 读取标准输入流
			standardInput = process.getInputStream();
			if(standardInput != null){
				standardReader = new BufferedReader(new InputStreamReader(standardInput));
				String line = standardReader.readLine();
				while (null != line) {
					standardMsg.append(line).append("\n");
					line = standardReader.readLine();
				}
			}

			// 检查错误流是否有信息,如果有,则说明执行失败
			errInput = process.getErrorStream();
			if(errInput != null){
				errReader = new BufferedReader(new InputStreamReader(errInput));
				String errLine = errReader.readLine();
				while (null != errLine) {
					errMsg.append(errLine).append("\n");
					errLine = errReader.readLine();
				}
				if(errMsg.length() > 0){
					throw new AntExecException(standardMsg.append(errMsg).toString());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
			throw new AntExecException(standardMsg.append(errMsg).toString());
		} finally {
			// 销毁进程对象,否则可能引起资源不能释放问题,出现Too many open files错误
			if (process != null) {
				process.destroy();
			}
			if (null != standardReader) {
				try {
					standardReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (null != errReader) {
				try {
					standardReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		logger.debug("executeAnt end...");
		return standardMsg.toString();
	}

 

public class AntExecException extends RuntimeException {

	private static final long serialVersionUID = -3708533380275512493L;

	public AntExecException() {
		super();
	}

	public AntExecException(String message, Throwable cause) {
		super(message, cause);
	}

	public AntExecException(String message) {
		super(message);
	}

	public AntExecException(Throwable cause) {
		super(cause);
	}

}

 

..

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java执行dos命令

    下面将详细介绍如何使用Java执行DOS命令以及相关知识点。 一、Runtime类 Runtime类是每个Java应用程序都有的一个实例,它提供了执行系统命令的方法。我们可以通过getRuntime()方法获取到Runtime实例,然后调用exec...

    Java执行DOS命令

    本文将深入探讨如何使用Java执行DOS命令,并给出具体示例。 首先,`Runtime`类是每个Java应用程序都有的一个实例,它允许程序与正在执行它的环境进行交互。我们可以通过`Runtime.getRuntime().exec()`方法来执行DOS...

    JAVA执行DOS命令分析

    在Java编程中,有时我们需要执行操作系统级别的任务,如运行DOS命令。这通常涉及到使用`Runtime`类的`exec()`方法。`Runtime.getRuntime().exec()`允许我们创建一个子进程来执行指定的命令或可执行程序。这个过程...

    java调用DOS命令

    Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...

    java 执行外部 命令

    通过java执行底层dos命令,不是很全但是可以参考!

    java 使用dos命令详解

    ### Java使用DOS命令详解 在Java开发过程中,有时候我们需要执行一些特定的操作系统命令来完成特定的任务,尤其是在Windows平台上。本文将详细介绍如何在Java中调用DOS命令,并通过具体的示例来阐述这一过程。 ###...

    JAVA如何调用DOS命令.doc

    总之,Java调用DOS命令主要依赖`Runtime`和`Process`类,需要注意命令格式、标准输出处理以及资源管理等问题,以确保命令的正确执行和程序的稳定运行。在实际开发中,应充分考虑各种情况,以保证代码的健壮性和跨...

    JAVA调用DOS命令.pdf

    JAVA 调用 DOS 命令是指在 JAVA 程序中执行 DOS 命令,实现了 JAVA 程序与 DOS 命令的交互。这种交互可以实现多种功能,如获取 DOS 命令的标准输出和错误输出、阻塞当前 JAVA 线程直到命令执行完毕等。 在 JAVA 中...

    java 调用 dos 命令

    Java调用DOS命令主要涉及Java的Runtime类和ProcessBuilder类,这两个类允许Java程序执行外部命令,也就是我们常说的DOS命令或者Windows命令行指令。这个过程通常被称为进程交互或者系统调用。 首先,Runtime类是每...

    java操作DOS命令

    Java操作DOS命令主要指的是通过Java程序调用操作系统(如Windows、Linux等)的命令行接口,执行系统级别的操作。这种技术在很多场景下都非常实用,例如自动化测试、系统管理或者进行一些系统级别的数据处理。下面...

    JAVA中用到的DOS命令

    在学习JAVA的过程中,掌握一些基本的DOS命令是非常有帮助的。DOS,全称Disk Operating System,是一种早期的操作系统,尽管现在已经被更先进的Windows等图形界面操作系统所取代,但在命令行环境中执行某些任务,特别...

    java调用dos命令

    本文将深入探讨如何使用Java来调用DOS命令,并以创建文件夹、复制文件以及运行BAT批处理文件为例,详细解释实现过程。 首先,我们来看如何用Java创建一个以当前日期为名的文件夹。在Java中,我们可以使用`java.io....

    JAVA如何调用DOS命令

    "JAVA如何调用DOS命令" 本文将详细介绍如何使用 Java 调用 DOS 命令,从基本概念到实践应用,总结了几种需要注意的情况,并提供了相应的解决方案。 调用DOS命令的基本概念 在 Java 中,可以使用 Runtime 类和 ...

    Java 执行Dos程序,结果显示到窗口

    一、Java执行DOS命令 1. 使用`Runtime.getRuntime().exec()`方法: 这是Java中执行外部命令最基础的方式。例如,我们想执行DOS下的"dir"命令,可以这样写: ```java String command = "cmd /c dir"; // cmd /c ...

    运行Dos命令工具(包装Windows下执行Java -Jar命令不让随便关闭,含Delphi7源码)

    运行Dos命令执行Java -jar xxx.jar时,输出内容可见。可自定义运行Dos命令,运行后自动最小化右下角到任务栏,关闭时要确认,也可要求设置密码才可退出。 执行说明: 在config.dt文件中配置,cmdLine=E:\Java2\...

    关于java的常用dos命令

    以下是从“关于Java的常用DOS命令”这一主题中提炼出的关键知识点,这些知识点涵盖了文件操作、环境变量查看、Java编译运行以及与Tomcat服务器相关的配置等核心内容。 ### DOS命令在Java开发中的应用 #### 文件...

    dos命令测试java jar文件 命令行下运行JUnit测试 命令运行java

    这里我们主要探讨如何使用DOS命令来测试Java JAR文件,以及如何在命令行下运行JUnit测试。这是一项基础但至关重要的技能,因为通过命令行工具可以高效地自动化测试和调试代码。 首先,让我们了解Java JAR文件。JAR...

    Java零基础(JDK13) - 常用DOS命令 - cd回到上级以及回到根.md

    ### Java零基础(JDK13) - 常用DOS命令 - cd回到上级以及回到根 #### 概述 本文档将引导读者了解...通过本文档的学习,读者不仅能够掌握使用Java执行DOS命令的基本技能,还能在实际开发中应用这些技能解决具体问题。

Global site tag (gtag.js) - Google Analytics