21xrx.com
2024-09-17 04:38:23 Tuesday
登录
文章检索 我的文章 写文章
Java如何调用cmd命令
2023-06-13 04:39:28 深夜i     --     --
Java cmd命令 Runtime类 ProcessBuilder类 exec()方法 ProcessBuilder

Java开发中,有时需要调用cmd命令来完成一些任务,比如运行批处理文件、执行系统命令等等。本文将介绍Java如何调用cmd命令。

1. 使用Runtime类调用cmd命令

在Java中,可以通过Runtime类的exec()方法调用cmd命令。具体实现步骤如下:

1)创建Runtime对象。

2)调用exec()方法执行命令。

3)通过输入流获取命令执行的结果。

示例代码如下:


try {

  Runtime rt = Runtime.getRuntime();

  Process pr = rt.exec("cmd /c dir");

  BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

  String line = null;

  while ((line = input.readLine()) != null) {

    System.out.println(line);

  }

  int exitVal = pr.waitFor();

  System.out.println("Exited with error code " + exitVal);

}

catch (Exception e) {

  System.out.println(e.toString());

  e.printStackTrace();

}

上述代码执行的是dir命令,返回当前目录下的文件列表。需要注意的是,在Windows系统中,需要加上"/c"参数才能正确执行命令。

2. 使用ProcessBuilder类调用cmd命令

除了使用Runtime类调用cmd命令外,还可以使用ProcessBuilder类。使用ProcessBuilder类的优点是可以设置工作目录、环境变量等信息,更加灵活。

示例代码如下:


try {

  ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "dir");

  pb.directory(new File("D:/"));

  Process p = pb.start();

  BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));

  String line;

  while ((line = input.readLine()) != null) {

    System.out.println(line);

  }

  int exitCode = p.waitFor();

  System.out.println("Exited with error code " + exitCode);

}

catch (Exception e) {

  System.out.println(e.toString());

  e.printStackTrace();

}

上述代码执行的同样是dir命令,且设置工作目录为D盘根目录。需要注意的是,在Windows系统中,需要加上"/c"参数才能正确执行命令。

.start()方法、工作目录、环境变量

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章