java代码操作cmd命令

近期在项目开发过程中,采用osgi框架进行开发,由于开发过程中,每个模块(功能)都是采用独立的bundle进行部署,所以每次修改完一个bundle的java文件后,

都需要进行清理、打包、部署,非常麻烦,所以想让这些无意义的工作自动化处理,于是写了个自动化处理的小工具类,具体处理代码每个项目组可能都不一样,下面我

贴出主要代码部分:java操作cmd命令

//1、编译打包
		String[] command =
	    {
	        "cmd",
	    };
	    Process p = null;
		try {
			p = Runtime.getRuntime().exec(command);
			new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
			new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
			PrintWriter stdin = new PrintWriter(p.getOutputStream());
			/**以下可以输入自己想输入的cmd命令*/
			stdin.println("d:"); 					//定位到D盘根目录
			stdin.println("cd "+PROGRAM_ROOT_PATH);	//cd到项目所在路径
			stdin.println("mvn clean");				//清理
			stdin.println("mvn package");			//打包
			
			stdin.close();
		} catch (Exception e) {
			throw new RuntimeException("编译出现错误:"+e.getMessage());
		}

/**
 * <pre>
 * 本类的代码来自http://stackoverflow.com/questions/4157303/how-to-execute-cmd-commands-via-java中
 * 以为网友的回答
 * </pre>
 * @author le.zhou
 * @version V1.0, 2014-7-28 上午11:04:45
 */
class SyncPipe implements Runnable
{
    public SyncPipe(InputStream istrm, OutputStream ostrm) {
        istrm_ = istrm;
        ostrm_ = ostrm;
    }
    public void run() {
    	try{
    		final byte[] buffer = new byte[1024];
    		for (int length = 0; (length = istrm_.read(buffer)) != -1;){
                ostrm_.write(buffer, 0, length);
            }
        }
        catch (Exception e) {
            throw new RuntimeException("处理命令出现错误:"+e.getMessage());
        }
    }
	private final OutputStream ostrm_;
	private final InputStream istrm_;
}


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值