Java 执行CMD命令或执行BAT批处理方式

下面就来详细讲解一下“Java 执行 CMD 命令或执行 BAT 批处理方式”的攻略。

1、执行 CMD 命令的示例

1.1、使用 Runtime 类执行

Java 中可以使用 Runtime 类来执行 CMD 命令或执行 BAT 批处理。下面是一个简单的示例程序,演示如何使用 Runtime 类执行 CMD 命令:

import java.io.IOException;

public class CmdCommandExample {
    public static void main(String[] args) {
        try {
            // 执行 ipconfig 命令
            Process process = Runtime.getRuntime().exec("ipconfig");
            // 获取执行结果
            StringBuilder result = new StringBuilder();
            int len;
            byte[] buffer = new byte[1024];
            while ((len = process.getInputStream().read(buffer)) != -1) {
                result.append(new String(buffer, 0, len, "GBK"));
            }
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述示例中,我们通过 Runtime.getRuntime().exec("ipconfig") 执行了 ipconfig 命令,并通过 process.getInputStream() 获取了执行结果。

1.2、使用 ProcessBuilder 类执行

另外一个执行 CMD 命令的方式是使用 ProcessBuilder 类,下面是一个示例程序:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class CmdCommandExample2 {
    public static void main(String[] args) {
        try {
            // 构造 CMD 命令
            List<String> command = new ArrayList<>();
            command.add("cmd");
            command.add("/c");
            command.add("ipconfig");
            ProcessBuilder pb = new ProcessBuilder(command);
            // 执行 CMD 命令
            Process process = pb.start();
            // 获取执行结果
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
            StringBuilder result = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                result.append(line).append("\n");
            }
            br.close();
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述示例中,我们使用 ProcessBuilder 类构造了 CMD 命令,并且通过 process.getInputStream() 获取了执行结果。

2、执行 BAT 批处理的示例

下面是一个使用 Runtime 类执行 BAT 批处理的示例程序:

import java.io.IOException;

public class BatCommandExample {
    public static void main(String[] args) {
        try {
            // 执行 batch.bat 批处理
            Process process = Runtime.getRuntime().exec("cmd /c start batch.bat");
            process.waitFor();
            // 获取执行结果
            StringBuilder result = new StringBuilder();
            int len;
            byte[] buffer = new byte[1024];
            while ((len = process.getInputStream().read(buffer)) != -1) {
                result.append(new String(buffer, 0, len, "GBK"));
            }
            System.out.println(result);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

上述示例中,我们通过 Runtime.getRuntime().exec("cmd /c start batch.bat") 执行了 batch.bat 批处理文件,并通过 process.getInputStream() 获取了执行结果。

总结:以上就是 Java 执行 CMD 命令或执行 BAT 批处理的完整攻略,可以根据自己的需求使用 Runtime 类或 ProcessBuilder 类来执行 CMD 命令或 BAT 批处理文件,并通过 process.getInputStream() 来获取执行结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 执行CMD命令或执行BAT批处理方式 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Springboot 整合maven插口调用maven release plugin实现一键打包功能

    下面是对于“Springboot 整合maven插口调用maven release plugin实现一键打包功能”的完整攻略: 整合Springboot与maven插件 在Springboot的pom.xml文件中添加maven插件,并指定release版本号: <build> <plugins> <plugin> &lt…

    Java 2023年5月19日
    00
  • Java线程死锁实例及解决方法

    Java线程死锁是指两个或多个线程被永久地阻塞,它们在等待其他线程释放它们所需要的资源。这是一个非常常见的问题,在并发编程中,如果不了解和处理好线程死锁,则会引发严重的程序堵塞甚至崩溃。 Java线程死锁的实例 示例1 下面是一个简单的死锁案例。假设有两个线程:A和B,他们都需要获取两个锁才能继续执行,两个锁分别是LockA和LockB,代码如下: publ…

    Java 2023年5月18日
    00
  • 详解java.lang.NumberFormatException错误及解决办法

    详解java.lang.NumberFormatException错误及解决办法 在Java编程中,如果出现数字字符串转换为数字类型时出现错误,就会抛出一个NumberFormatException异常。这种错误通常是由于尝试将一个无效的字符串转换为数字类型引起的。在本文中,我们将详细了解这个常见错误的原因和解决办法,并提供两个示例说明其中的一个常见场景。 …

    Java 2023年5月27日
    00
  • Java 位图法排序的使用方法

    Java 位图法排序是一种基于位图思想实现的排序算法,适用于数据量较大,但取值范围较小的场合,其时间复杂度可以控制在O(n)级别。下面我将为大家详细讲解Java 位图法排序的使用方法: 什么是Java 位图法排序 Java 位图法排序是一种基于位图思想实现的排序算法。其基本思路是,将要排序的数据对应到位图上,位图中每个位表示一个数据取值是否出现。通过遍历位图…

    Java 2023年5月19日
    00
  • JAVA 运算符归纳总结

    JAVA 运算符归纳总结 一、算术运算符 运算符 说明 示例 + 加法/字符串连接 1 + 1 = 2,”a” + “b” – 减法 2 – 1 = 1 * 乘法 3 * 2 = 6 / 除法 5 / 2 = 2 % 取模(余数) 5 % 2 = 1 ++ 自增 i++,++i — 自减 i–,–i 示例说明: // 加法/字符串连接 int a = …

    Java 2023年5月26日
    00
  • 使用SpringMVC返回json字符串的实例讲解

    我将为您讲解使用SpringMVC返回JSON字符串的实例攻略。 1. 实现步骤 SpringMVC实现返回JSON字符串的步骤大致如下: 在pom.xml文件添加依赖: <dependencies> <!– SpringMVC核心包 –> <dependency> <groupId>org.springf…

    Java 2023年6月15日
    00
  • Java实现的串口通信功能示例

    为了实现串口通信功能,Java提供了一个称为Java Comm API的标准扩展。下面是实现Java串口通信的步骤: 下载并安装Java Comm API。Java Comm API不是JDK的一部分,需要单独下载、安装和配置。它提供了一个称为javax.comm的包,它包含用于访问串口的类和方法。 确定要使用的串口。您需要查看串口通信设备管理器,以查找可用…

    Java 2023年5月19日
    00
  • 记一次在idea离线使用maven问题(推荐)

    下面是使用IDEA离线使用Maven的完整攻略: 1. 环境准备 首先,将Maven压缩包解压到本地,例如解压到D:\maven-3.6.3目录下,并设置好环境变量MAVEN_HOME和PATH,具体可以参考Maven 安装 | 菜鸟教程 (runoob.com)。 然后,进入IDEA的Settings(或者File -> Settings),在Bui…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部