java执行windows、shell命令

本文介绍了一种在Java中执行Windows命令的方法,并演示了如何通过一个示例来连续执行多个命令,包括更改目录和运行批处理文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中调用windows命令,可以一次性执行多个命令。稍微改一下,也可以执行Linux l命令或shell脚本。

public class RuntimeTask {

	public static void main(String[] args) {
		Process process;
		//一次性执行多个命令
		String cmd = "cmd /c \"E: && dir && cd gitBackup && dir && pullAll.bat\"";

		try {
			Runtime runtime = Runtime.getRuntime();

			System.out.println("开始执行。。。");
			process = runtime.exec(cmd);

			//打印执行的输出结果
			InputStream is = process.getInputStream();
			InputStreamReader isr = new InputStreamReader(is, "gbk"); //gbk:解决输出乱码
			BufferedReader br = new BufferedReader(isr);
			String line;
			while ((line = br.readLine()) != null){
				System.out.println(line);
			}

			is.close();
			isr.close();
			br.close();
		}catch (IOException e){
			e.printStackTrace();
		}
	}
}


Java执行shell命令可以使用Runtime类或ProcessBuilder类。以下是使用Runtime类执行shell命令的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShellCommand { public static void main(String[] args) { try { // 执行ls命令 Process process = Runtime.getRuntime().exec("ls"); // 读取命令输出结果 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // 等待命令执行完成 int exitCode = process.waitFor(); System.out.println("命令执行完成,退出码:" + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 使用ProcessBuilder类执行shell命令的示例代码如下: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class ShellCommand { public static void main(String[] args) { try { // 构建命令 List<String> command = new ArrayList<>(); command.add("ls"); command.add("-l"); // 执行命令 ProcessBuilder processBuilder = new ProcessBuilder(command); Process process = processBuilder.start(); // 读取命令输出结果 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // 等待命令执行完成 int exitCode = process.waitFor(); System.out.println("命令执行完成,退出码:" + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 以上代码都是在Linux或MacOS上执行的示例,若在Windows上需要将命令改为相应的Windows命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值