Java Runtime.getRuntime().exec()执行linux脚本

本文介绍了在Java中使用Runtime.getRuntime().exec()方法执行Linux脚本时遇到的问题及解决办法。重点讨论了如何处理复杂脚本执行失败的情况,提供了相关代码示例和日志输出。

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

Java Runtime.getRuntime().exec()执行linux脚本

相关文章链接:

linux系统配置(cpu、内存、磁盘等)

观前提示:

本文所使用的IDEA版本为ultimate 2019.1,JDK版本为1.8.0_141,Linux版本为CentOS release 6.10。

最近,在使用Java调用linux命令查询系统信息时发现,执行一些简单的脚步没有问题,但是稍微复杂的脚本变执行失败了。在百度了之后,发现加上

String[] cmd = new String[]{
   "sh","-c", command};

便可成功执行。

例子如下(部分代码)

/**
	 * @Title getCpuInfo
	 * @Description 获取CPU相关信息
	 * @date 2020-07-29 by jjy
	 * @return Map<String, Object>
	 */
	public static Map<String, Object> getCpuInfo() {
   

		log.info("Collect cpu info start...");
		Map<String, Object> resultMap = new LinkedHashMap<>();

		// 查询cpu信息
		String cpuNameCommand = "cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq";
		// 查询cpu物理个数
		String physicalCommand = "cat /proc/cpuinfo| grep \"physical id\"| sort| uniq| wc -l";
		// 查看每个物理 CPU 中 core 的个数(即核数)
		String coreCommand =  "cat /proc/cpuinfo| grep \"cpu cores\"| uniq | cut -f2 -d:";
		// 查询cpu逻辑核数
		String logicCommand = "cat /proc/cpuinfo| grep \"processor\"| wc -l";
		// 查询cpu空闲率
		String idleCommand = "top -b -n 1 |grep Cpu | cut -d \",\" -f 4";

		Process pro = null;
		BufferedReader br = null;
		try{
   

			// 查询CPU信息
			String[] cmd = new String[]{
   "sh","-c", cpuNameCommand};
			pro = Runtime.getRuntime().exec
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值