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日

相关文章

  • 新手入门Jvm–Jvm垃圾回收

    新手入门Jvm–Jvm垃圾回收 什么是Jvm Jvm全称是Java虚拟机,它是一个运行Java字节码的虚拟机软件。它负责解释和执行Java代码,并提供各种服务,如垃圾回收、内存管理和安全等。Jvm通过将字节码解释成可执行的机器指令来执行Java应用程序,使得Java程序具有跨平台的能力。 垃圾回收 一般的程序运行结束后,系统会自动释放它所占用的内存资源,但…

    Java 2023年5月19日
    00
  • Java实现解析JSON大文件JsonReader工具详解

    Java实现解析JSON大文件JsonReader工具详解 1. 什么是JsonReader? JsonReader 是 Google 提供的一个用于解析 JSON 的 Java 工具,它可以有效地解析大型 JSON 文件,并将 JSON 数据转化为 Java 对象。相比于其他 JSON 解析工具,JsonReader 不会将整个 JSON 文件载入内存,而…

    Java 2023年5月26日
    00
  • 用java代码帮朋友P图

    下面是“用java代码帮朋友P图”的完整攻略: 准备工作 首先,我们需要安装并配置好Java开发环境。建议使用JDK1.8及以上版本,可以到Oracle官网下载并安装。安装完成后,需配置Java环境变量,具体可参考官方文档或搜索教程进行配置。 图像处理库 Java提供了许多用于图像处理的库,常用的有Java2D和JavaFX等。这里我们选择Java2D,它提…

    Java 2023年5月23日
    00
  • Java实现JDBC批量插入原理详解

    Java实现JDBC批量插入原理详解 为什么使用JDBC批量插入? 当需要将大量数据存入数据库时,常规的操作是采用循环逐条插入的方式,此种方式会严重影响效率且容易出现内存溢出等问题。而使用JDBC批量插入,可以有效提高插入效率,减少内存消耗,缩短程序执行时间。 JDBC批量插入是怎么工作的? JDBC批量插入是通过使用PreparedStatement的ad…

    Java 2023年5月20日
    00
  • Java-IO流实验

    Java-IO流实验攻略 实验目的 通过本实验,学生应该了解和掌握基本的Java IO流的使用方法,包括文件输入/输出流、字符输入/输出流、缓冲输入/输出流和对象输入/输出流等,同时也能够学会如何合理地使用IO流来处理文件读写操作。 实验环境 Java 8及以上版本 Eclipse等Java IDE软件 实验步骤 1. 创建文件 首先需要创建一个用于测试的文…

    Java 2023年5月26日
    00
  • Java 数据库连接池 DBCP 的介绍

    Java 数据库连接池 DBCP 的介绍 什么是数据库连接池? 在传统的JDBC开发中,每次连接数据库都要进行数据库的连接和断开操作,这样会极大地浪费系统资源和时间,尤其是在高并发的情况下。为了解决这个问题,我们可以采用连接池技术,将一些连接预先放在池子中,在需要的时候从池子中获取连接,用完后再放回池子中,避免频繁的连接和断开操作。 DBCP 是什么? DB…

    Java 2023年5月19日
    00
  • Java实现5种限流算法及7种限流方式

    Java实现5种限流算法及7种限流方式攻略 本文将介绍5种限流算法以及7种限流方式在Java中的实现,其中限流算法包括令牌桶、漏桶、计数器、滑动窗口和基于Hystrix的断路器。限流方式包括拦截器、过滤器、注解、配置、缓存、队列和断路器。 1.令牌桶 算法原理 令牌桶算法基于生产令牌和消费令牌的方式控制流量。生产令牌的速率是固定的,而当请求到达时,每个请求消…

    Java 2023年5月19日
    00
  • Form表单按回车自动提交表单的实现方法

    当用户在表单中输入完数据并按下回车键时,可以通过JavaScript实现自动提交表单。下面是一些实现方法: 方法1:jQuery实现 如果你正在使用jQuery库,可以使用以下代码实现表单自动提交: $(document).on("keydown", "form input", function (event) { i…

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