java执行命令(cmd,shell)

18 篇文章 0 订阅

一个简单的小工具,用java执行系统命令,并打印输出。

public class OSExecute {
	/**
	 * <b>command。</b>
	 * <p>
	 * <b>详细说明:</b>
	 * </p>
	 * <!-- 在此添加详细说明 --> 无。
	 * 
	 * @param command
	 */
	public static void command(String command) {
		try {
			Process process = new ProcessBuilder(Arrays.asList(command.split(" "))).start();
			// 标准输入流
			BufferedReader result = new BufferedReader(new InputStreamReader(
					process.getInputStream()));
			String s = result.readLine();
			while (s != null) {
				System.out.println(s);
				s = result.readLine();
			}
			// 标准错误输入流
			BufferedReader error = new BufferedReader(new InputStreamReader(
					process.getErrorStream()));
			s = error.readLine();
			while (s != null) {
				System.err.println(s);
				s = error.readLine();
			}
		} catch (Exception e) {
			// 纠正
			if (!command.startsWith("CMD /C")) {
				command("CMD /C " + command);
			} else {
				throw new RuntimeException(e.getMessage());
			}
		}
	}

	public static void main(String[] args) {
		OSExecute.command("dir");
	}
}
 

测试ls(windows下测试),命令的结果:

驱动器 E 中的卷是 Doc
卷的序列号是 B411-2480

E:/workspace/java/ThinkInJava/book 的目录

2010/12/28 20:30 <DIR> .
2010/12/28 20:30 <DIR> ..
2010/12/28 19:31 518 .classpath
2010/08/29 08:59 380 .project
2010/12/28 17:09 <DIR> .settings
2010/12/28 19:57 <DIR> bin
2010/12/28 20:32 100 data.txt
2010/08/29 09:02 <DIR> source
2010/12/28 19:55 <DIR> src
2010/08/29 09:14 <DIR> test
3 个文件 998 字节
7 个目录 13,018,263,552 可用字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值