Java中System类和Runtime类常用方法和属性
Java中,System 类和 Runtime 类提供了一些关键的功能,用于与底层操作系统以及运行时环境进行交互。System类是Java标准库中的一个类,提供了对JVM的一些基本访问和控制方法。Runtime 类实例封装了运行时环境。为Java程序提供了与底层系统交互的强大工具,但也需要谨慎使用以避免潜在的问题。
参考文档:
1、System类常用方法和属性
System
类是一个提供了一系列有用的类字段和方法的最终类(final class),主要用于提供对系统级操作和系统环境的访问。
方法/属性 | 描述 |
---|---|
System.err |
标准错误输出流。 |
System.in |
标准输入流。 |
System.out |
标准输出流。 |
System.arraycopy() |
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 |
System.clearProperty() |
根据key移除系统属性。 |
System.console() |
返回与当前 Java 虚拟机关联的唯一 Console 对象,没有返回null。 |
System.currentTimeMillis() |
返回以毫秒为单位的当前时间。 |
System.exit() |
终止当前正在运行的Java虚拟机。 |
System.gc() |
运行垃圾回收器。 |
System.getenv() |
返回当前系统环境变量键值映射(Map),并且是不可修改的。 |
System.getenv(String) |
获取指定环境变量的值。 |
System.getProperties() |
获取当前系统属性。 |
System.getProperty(String) |
根据key获取系统属性。 |
System.getProperty(String, String) |
key - 系统属性的名称,def - 默认值。 |
System.getSecurityManager() |
获取系统安全接口,返回值是SecurityManager对象。 |
System.identityHashCode() |
返回给定对象的哈希码。 |
System.inheritedChannel() |
返回从创建此Java虚拟机的实体中继承的信道。 |
System.load() |
从本地文件系统中以指定的文件名加载代码文件。 |
System.loadLibrary() |
加载指定库名称为libname的系统库。 |
System.mapLibraryName() |
返回与平台相关的本地库的名字。 |
System.nanoTime() |
返回最准确的可用系统计时器的当前值,以毫微秒为单位。 |
System.runFinalization() |
运行处于挂起终止状态的所有对象的终止方法。 |
System.runFinalizersOnExit() |
已过时。具有固有的不安全性。 |
System.setErr() |
重新分配标准错误输出流。 |
System.setIn() |
重新分配“标准”输入流。 |
System.setOut() |
重新分配“标准”输出流。 |
System.setProperties() |
将系统属性设置为 Properties 参数。 |
System.setProperty() |
设置指定键指示的系统属性。 |
System.setSecurityManager() |
设置系统安全性。 |
使用示例:
public class Main { public static void main(String[] args) { // 使用 System.out 打印信息 System.out.println("Hello, World!"); // 使用 System.err 打印错误信息 //System.err.println("Error message!"); // 获取系统当前时间 long currentTime = System.currentTimeMillis(); System.out.println("Current time in milliseconds: " + currentTime); // 获取系统环境变量 String pathVariable = System.getenv("PATH"); System.out.println("System PATH: " + pathVariable); // 获取系统属性 String javaVersion = System.getProperty("java.version"); System.out.println("Java Version: " + javaVersion); // 设置系统属性 System.setProperty("myProperty", "myValue"); String myProperty = System.getProperty("myProperty"); System.out.println("Custom System Property: " + myProperty); // 运行垃圾回收器 System.gc(); System.out.println("Garbage collector invoked."); // 获取系统安全管理器 SecurityManager securityManager = System.getSecurityManager(); if (securityManager == null) { System.out.println("No security manager is set."); } else { System.out.println("Security manager is set."); } // 获取精确时间(纳秒) long nanoTime = System.nanoTime(); System.out.println("Current time in nanoseconds: " + nanoTime); // System.exit() 示例(请注意,这将停止程序运行) // System.exit(0); System.exit(0); //success } }
2、Runtime类常用方法和属性
Runtime
类代表了 Java 应用程序的运行时环境。每个 Java 应用程序都有一个单一的 Runtime
实例,它允许应用程序与其运行时环境进行交互。Runtime
类提供了几个重要的功能,使得 Java 程序能够执行一些与系统相关的操作。
方法 | 描述 |
---|---|
Runtime.getRuntime() |
获取 Runtime 类实例对象。 |
exec(String command, String[] envp, File dir) |
用指定的环境和工作目录在指定的进程中执行指定的字符串命令, 也可以说就是执行一个另外的程序。 |
freeMemory() |
返回 Java 虚拟机中的空闲内存量,以字节为单位。 |
totalMemory() |
返回 Java 虚拟机中的内存总量。 |
maxMemory() |
返回 Java 虚拟机试图使用的最大内存量。 |
availableProcessors() |
返回 Java 虚拟机可用的处理器数量。 |
gc() |
运行垃圾回收器。建议 Java 虚拟机去回收未使用的对象, 以便快速重用其占用的内存。 |
addShutdownHook(Thread hook) |
在 JVM 关闭时执行添加的钩子(hook), 执行完这些钩子后,JVM 才会关闭。可用于关闭时的清理操作。 |
使用示例: