package Testlink;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; /*
* 此方法主要是用于执行DOS命令
*/
public class DOSUtil { // 定义执行的进程
private Process process; // 定义工作目录
private File workspaceFile; // 定义工作目录下的所有文件和文件夹
private File dirFile; // 定义buildXML文件夹
private File buildXMLDirectory; // 工作目录路径
private String workspacePath; // build.xml文件路径
private String buildXMLDirectoryPath; // ant执行build.xml文件
private String antCommand; /**
* 该方法主要用于执行ANT的build.xml文件
*/
public void RunDOS() {
// 获取当前地址的路径
workspaceFile = new File("");
workspacePath = workspaceFile.getAbsolutePath(); // 获取路径下的所有文件
dirFile = new File(workspacePath);
File[] files = dirFile.listFiles(); // 获取BuildXML文件夹的路径
buildXMLDirectoryPath = (workspacePath + "\\BuildXML"); // 获取BuildXML文件下的所有文件
buildXMLDirectory = new File(buildXMLDirectoryPath);
File[] xmlFiles = buildXMLDirectory.listFiles(); // 定义需要执行的ant命令
antCommand = ("cmd.exe /c ant -buildfile " + this.buildXMLDirectoryPath + "\\build.xml"); // 判断工作目录是否为空,如果不为空就向下执行
if (files.length != 0) {
// 循环遍历是否存在BuildXML文件夹
File[] arrayOfFile1;
int j = (arrayOfFile1 = files).length;
for (int i = 0; i < j; i++) {
File file = arrayOfFile1[i];
if (file.getName().equals("BuildXML")) {
// 判断BuildXML文件是否为空,不为空向下执行
if (xmlFiles.length != 0) {
File[] arrayOfFile2;
int m = (arrayOfFile2 = xmlFiles).length;
for (int k = 0; k < m; k++) {
File xmlfile = arrayOfFile2[k];
if (xmlfile.getName().equals("build.xml")) {
try {
process = Runtime.getRuntime().exec(antCommand);
InputStream iStream = process.getInputStream();
BufferedReader bReader = new BufferedReader(new InputStreamReader(iStream));
String str = null;
while ((str = bReader.readLine()) != null) {
System.out.println(str);
}
System.out.println("我的已经执行了");
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("build.xml文件不存在");
}
}
} else {
System.out.println("BuildXML文件夹为空");
}
}
}
} else {
System.out.println("文件内容为空");
}
}
}

DOSUtil的更多相关文章

  1. software download

    Develop Sourceinsight 3.50.0066 http://pan.baidu.com 这个版本支持输入文件名的一部分来查找文件,而不像3.50.0029必须输入完整的文件名 VFP ...

  2. Linux 常见紧急情况处理方法

    使用急救盘组进行维护 急救盘组(也称为 boot/root 盘组),是系统管理员必不可少的工具.用它可以独立地启动和运行一个完整的 Linux 系统.实际上,急救盘组中的第 2 张盘上就有一个完整的 ...

  3. Linux基础学习-使用PXE+Kickstart无人值守安装服务

    无人值守安装系统 PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技 ...

  4. 透彻的了解Linux系统故障并解决

    透彻的了解Linux系统故障并解决 2009-12-25 10:24 佚名 NET130 字号:T | T 经常应用Windows操作系统时,我们会很多的系统故障,于是很多人开始应用Linux操作系统 ...

  5. MainRun

    package Testlink; import java.io.IOException; public class MainRun { public static void main(String[ ...

随机推荐

  1. VB6 Webbowser控件与JS交互,无边框和屏蔽右键菜单

    1. 屏蔽右键菜单  在菜单中单击"工程"->"引用",在列表中找到"Microsoft HTML Object Library"打上 ...

  2. python 多进程读写文件

    import time from multiprocessing import Process, JoinableQueue, cpu_count import csv ####处理一条数据的方法 d ...

  3. (三)Maven之仓库

    目录 引言:坐标和依赖是一个构件在Maven世界中逻辑表示方式,而构件的物理表示方式就是文件而已,仓库就是统一管理这些文件的地方. 目录 仓库类别 本地仓库 远程仓库: 中仓仓库(自带的默认远程仓库) ...

  4. 手把手教您在 Windows Server 2019 上使用 Docker

    配置 Windows 功能 要运行容器,您还需要启用容器功能 Install-WindowsFeature -Name Containers 在 Window Server 2019 上安装 Dock ...

  5. 博客中gitalk最新评论的获取 github api使用

    博客中,对于网友的评论以及每篇文章的评论数还是很重要的.但是基于静态的页面想要存储动态的评论数据是比较难的,一般博客主题中都内置了评论插件,但是博客主题中对于最新评论的支持显示还是很少的,至少目前我是 ...

  6. Zotero引用文献格式(软件学报)

    最近在写一篇综述,要处理大量引用文献,选用Zotero作为文献管理工具.在插入参考文献目录时需要遵循格式,奈何网上找不到<软件学报>对应的csl模板文件,所以决定自己动手修改.在此记录下自 ...

  7. Haddop的数据计算部分原理

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import o ...

  8. vue组件的watch属性

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. TCP为什么要三次握手和四次挥手

    http://www.jellythink.com/archives/705 简析TCP的三次握手与四次分手 https://zhuanlan.zhihu.com/p/24001696 计算机网络面试 ...

  10. D-query SPOJ 树状数组+离线

    D-query SPOJ 树状数组+离线/莫队算法 题意 有一串正数,求一定区间中有多少个不同的数 解题思路--树状数组 说明一下,树状数组开始全部是零. 首先,我们存下所有需要查询的区间,然后根据右 ...