「Java 开发实例」Java 操作 windows 工具,让程序更骚操作

212 阅读1分钟

🙏废话不多说系列,直接开整🙏

女19.jpg

一、介绍

在Java中可以调用外部程序,这需要通过Process等类来实现。

二、示例

(1)调用 Windows CMD查看JDK版本
ProcessBuilder pb = new ProcessBuilder("java","-version");
pb.redirectErrorStream(true);
Process process = pb.start();
process.waitFor();
System.out.println(process.exitValue());
byte[] bytes = new byte[process.getInputStream().available()];
process.getInputStream().read(bytes);
System.out.println(new String(bytes));

// 输出结果
0
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
(2)调用 Windows 记事本

调用 notepad 就可以启动记事本了。由于我们调用了process.waitFor() ,所以当记事本窗口关闭前,Java程序也不会关闭。同理,calc 可以启动计算器,explorer 可以启动资源管理器。

ProcessBuilder pb = new ProcessBuilder("notepad");
pb.redirectErrorStream(true);
Process process = pb.start();
process.waitFor();
System.out.println(process.exitValue());
byte[] bytes = new byte[process.getInputStream().available()];
process.getInputStream().read(bytes);
System.out.println(new String(bytes));
(3)查看 Windows 版本
// JDK1.8
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "ver");
pb.redirectErrorStream(true);
Process process = pb.start();
process.waitFor();
System.out.println(process.exitValue());
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"))) {
    String result = reader.lines().collect(Collectors.joining("\n"));
    System.out.println(result);
}

🙏至此,非常感谢阅读🙏

女19.jpg