Java Runtime类的用法(附带实例)
Java 提供了 Runtime 类来表示运行环境,每个 Java 程序启动后都有唯一的运行环境,即一个 Runtime 实例,通过该实例可以获取运行时的一些状态信息或者执行一些操作。
Runtime 类提供了获取 JVM 内存信息和处理器数的相关方法,例如:
Runtime 类能让我们执行操作系统中的命令或者可执行文件。
下半部分则演示了如何在 Java 中通过“cmd.exe”可执行文件读取“JAVA_HOME”环境变量的值,主要关注“Runtime.getRuntime().exec("cmd.exe /c echo %JAVA_HOME%")”,它表示用“echo %JAVA_HOME%”作为参数传给“cmd.exe”执行并得到结果。
输出结果为:
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
ICP备案:
公安联网备案: