首页 > 编程笔记 > Java笔记 阅读:15

Java Runtime类的用法(附带实例)

Java 提供了 Runtime 类来表示运行环境,每个 Java 程序启动后都有唯一的运行环境,即一个 Runtime 实例,通过该实例可以获取运行时的一些状态信息或者执行一些操作。

Runtime 类提供了获取 JVM 内存信息和处理器数的相关方法,例如:
public class RuntimeTest {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        int processors = runtime.availableProcessors();
        long freeMemory = runtime.freeMemory();
        long maxMemory = runtime.maxMemory();
        long totalMemory = runtime.totalMemory();
        System.out.println("JVM处理器数:" + processors);
        System.out.println("JVM空闲内存:" + freeMemory / 1024 / 1024 + "M");
        System.out.println("JVM总内存:" + totalMemory / 1024 / 1024 + "M");
        System.out.println("JVM最大内存:" + maxMemory / 1024 / 1024 + "M");
    }
}
程序中获取了 4 个变量值,分别对应处理器数、空闲内存、总内存和最大内存。输出结果为:

JVM处理器数:8
JVM空闲内存:252M
JVM总内存:254M
JVM最大内存:4054M


Runtime 类能让我们执行操作系统中的命令或者可执行文件。
public class RuntimeTest2 {
    public static void main(String[] args) throws IOException {
        Process process = Runtime.getRuntime().exec("dir");
        InputStream fis = process.getInputStream();
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String line;
        System.out.println("dir 命令输出:");
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }

        process = Runtime.getRuntime().exec("cmd.exe /c echo %JAVA_HOME%");
        fis = process.getInputStream();
        isr = new InputStreamReader(fis);
        br = new BufferedReader(isr);
        System.out.println("cmd窗口打印%JAVA_HOME%:");
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    }
}
程序上半部分主要关注“Runtime.getRuntime().exec("dir")”,它表示在命令窗口执行“dir”命令,对于接着的若干行代码我们先不用深入理解,只要知道它们是用来读取执行后的结果。

下半部分则演示了如何在 Java 中通过“cmd.exe”可执行文件读取“JAVA_HOME”环境变量的值,主要关注“Runtime.getRuntime().exec("cmd.exe /c echo %JAVA_HOME%")”,它表示用“echo %JAVA_HOME%”作为参数传给“cmd.exe”执行并得到结果。

输出结果为:

dir 命令输出:
bin  src  test.txt  tmp.o
cmd窗口打印%JAVA_HOME%:
C:\Program Files\Java\jdk-11.0.2

相关文章