java里面调用命令行语句

该代码片段展示了如何在Java中使用Runtime类执行一系列bash命令,包括改变工作目录和运行特定脚本。它处理了输入输出流并确保命令执行的正确关闭。

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

如图,进入指定文件夹,后调用语句


        //预存想要执行的命令
		List<String> commands= new ArrayList<>();
		//进入当前用户bin目录,也可替换成自己想要的目录
		commands.add("cd ~/bin");
		//我要执行的命令
		commands.add("uhvpatrolmodelbuilder -excels "+ substationCode + ".xlsx");


        Runtime run = Runtime.getRuntime();
		BufferedReader in = null;
		PrintWriter out = null;
		Process proc = null;
		try {
			proc = run.exec("/bin/bash", null, null);//通用的,不用动。
			in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
			out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
			//开始执行命令
			for (String line : commands) {
				logger.info("执行命令:" + line);
				out.println(line);
			}
			// 这个命令必须执行,否则in流不结束。
			out.println("exit");

			logger.info("-----------返回结果--------------:" + in.readLine());
			proc.waitFor();
		} catch (IOException e1) {
			e1.printStackTrace();
			logger.error("调用IO异常", e1);
		} catch (InterruptedException e2) {
			e2.printStackTrace();
			logger.error("异常中断", e2);
		} catch (Exception e3) {
			e3.printStackTrace();
			logger.error("请求失败", e3);
		} finally {
			try {
				if (in != null) {
					in.close();
				}
				if (out != null) {
					out.close();
				}
				if (proc != null) {
					proc.destroy();
				}
			} catch (Exception ex) {
				logger.error("调用in.close Exception");
			}
		}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值