Skip to content Skip to footer

Java System类的用法(非常详细,附带实例)

Java 提供了 System 类用来完成系统层面的一些操作,该类提供了很多有用的系统级的操作方法,比如获取标准输入输出流、获取系统属性、获取操作系统环境变量、获取系统当前时间、纳秒计时器以及复制数组等。

我们不能对 System 类进行实例化,它的所有方法都是静态的,要使用它的方法,只需通过该类直接调用。

Java System获取系统当前时间

我们可以通过 System 类提供的 currentTimeMillis() 静态方法来获取系统的当前时间,注意它返回的是当前时间点到 1年 1 月 1 日之间的时长,单位是毫秒(ms),我们也将该值称为时间戳。

jshell> System.currentTimeMillis();

$1 ==> 1745306946651

上面是获取当前时间的例子,结果为 1745306946651,将该值转换为日期就是“2025-04-22 2025-04-22 15:29:06”。

System 类还为我们提供了纳秒级的计时器,主要通过 nanoTime() 方法类实现,通常我们会将在计时区间使用两个 nanoTime() 方法获取的值相减来得到计时结果。

public class SystemTest {

public static void main(String args[]) {

for (int i = 0; i < 3; i++) {

long start = System.nanoTime();

//计时开始

int count = 0;

for (int j = 1; j <= 1j++)

count += j;

//计时结束

long end = System.nanoTime();

System.out.println("第" + i + "次耗时:" + (end - start));

}

}

}

输出结果为:

第0次耗时:1100

第1次耗时:900

第2次耗时:900

程序中,先在计时开始时通过 nanoTime() 方法获取一个值,然后在计时结束时再通过 nanoTime() 方法获取一个值,两个值相减就是计时区间的时长了。程序实现的逻辑是获取三次计算从 1 加到 所耗费的时长,每次耗时在一千纳秒左右。

Java System获取系统属性

如果要获取系统相关的属性,也可以通过 System 类来获取,这些属性既包括 Java 的版本、厂商、安装路径等属性,也包括操作系统层面的相关属性。

例如:

public class SystemTest {

public static void main(String args[]) {

System.out.println("Java版本:" + System.getProperty("java.version"));

System.out.println("Java厂商:" + System.getProperty("java.vendor"));

System.out.println("Java厂商网址:" + System.getProperty("java.vendor.url"));

System.out.println("Java安装目录:" + System.getProperty("java.home"));

System.out.println("Java规范版本:" + System.getProperty("java.specification. version"));

System.out.println("Java规范厂商:" + System.getProperty("java.specification. vendor"));

System.out.println("Java规范名称:" + System.getProperty("java.specification. name"));

System.out.println("Java类版本号:" + System.getProperty("java.class.version"));

System.out.println("Java类路径:" + System.getProperty("java.class.path"));

System.out.println("Java库路径:" + System.getProperty("java.library.path"));

System.out.println("Java临时路径:" + System.getProperty("java.io.tmpdir"));

System.out.println("操作系统名称:" + System.getProperty("os.name"));

System.out.println("操作系统的架构:" + System.getProperty("os.arch"));

System.out.println("操作系统版本号:" + System.getProperty("os.version"));

System.out.println("文件分隔符:" + System.getProperty("file.separator"));

System.out.println("操作系统用户名:" + System.getProperty("user.name"));

System.out.println("操作系统用户主目录:" + System.getProperty("user.home"));

System.out.println("当前工作目录:" + System.getProperty("user.dir"));

}

}

输出结果为:

Java版本:11.0.2

Java厂商:Oracle Corporation

Java厂商网址:http://java.oracle.com/

Java安装目录:C:\Program Files\Java\jdk-11.0.2

Java规范版本:11

Java规范厂商:Oracle Corporation

Java规范名称:Java Platform API Specification

Java类版本号:55.0

Java类路径:D:\workspace\java_book_code\bin

Java库路径:C:\Program Files\Java\jdk-11.0.2\bin;

Java临时路径:C:\Users\seaboat\AppData\Local\Temp\

操作系统名称:Windows 10

操作系统的架构:amd64

操作系统版本号:10.0

文件分隔符:\

操作系统用户名:seaboat

操作系统用户主目录:C:\Users\seaboat

当前工作目录:D:\workspace\java_book_code

Java System获取操作系统的环境变量

通过 System 类的 getenv() 方法能获取操作系统的环境变量。

安装 Java 时大家就已经学过了如何配置系统变量,如果我们要添加一个环境变量,可以按照下图的步骤去添加:

图 1 新建系统环境变量

这里我们添加了一个 test 变量及其对应的变量值,然后就可以通过 System.getenv("test") 来获取对应的变量值,代码如下所示:

jshell> System.getenv("test");

$1 ==> "java test"

Java System退出虚拟机

System 类还提供了 exit() 方法用于退出 Java 虚拟机,这是一个风险较高的方法,因为执行它后将导致程序结束,而不管现在运行状态如何。

下面实例在输出了“准备停止...”后就退出 Java 虚拟机,后面的“到达不了”不会输出。

public class SystemTest {

public static void main(String args[]) {

System.out.println("准备停止...");

System.exit(1);

System.out.println("到达不了");

}

}

Java System获取标准输出输入对象

在编写 Java 代码时我们经常会将某些结果输出以查看是否正确,这时就会用“System.out.println()”方法,这也是我们最经常用的一行代码。其中“System.out”对应的就是标准输出对象,而所谓标准输出对象通常是指计算机所连接的显示器,所以我们能够向显示器屏幕输出文本。

此外,“System.err”也是标准输出对象,它与“System.out”基本相同,前者用于输出错误信息而后者用于输出普通信息。

下面的实例代码展示了标准输出对象的使用:

public class SystemTest {

public static void main(String args[]) {

System.out.println("标准输出-普通信息打印");

System.err.println("标准输出-错误信息打印");

}

}

输出结果如下图所示:

图 2 输出结果

对应于标准输出对象,System 类还提供了获取标准输入对象的途径,具体通过“System.in”来获取。标准输入对象通常是指计算机所连接的键盘,一般情况下我们就是通过键盘(输入)与显示器(输出)来进行交互的。

下面实例展示了从键盘获取输入字符的功能:

public class SystemTest {

public static void main(String args[]) throws IOException {

InputStream is = System.in;

Reader r = new InputStreamReader(is);

char[] chs = new char[1024];

int len = 0;

while ((len = r.read(chs)) != -1) {

char[] cc = new char[len];

for (int i = 0; i < len; i++)

cc[i] = chs[i];

String str = new String(cc);

System.out.println("键盘输入的字符串为:" + str);

}

is.close();

}

}

输入输出如下图所示:

图 3 输入输出

“System.in”其实是一个输入流,封装成一个 Reader 对象就可以进行读取操作了。chs 变量是一个长度为 1024 的数组,用于存放从键盘读取的字符串,也就是说每次最多只能读取长度为 1024 的字符串。

程序运行后会保持监听键盘的输入,当我们输入“java标准输入”字符串并按下回车键后,屏幕就会输出这个字符串。

Copyright © 2088 世界杯八强_2018年世界杯亚洲区预选赛 - nprny.com All Rights Reserved.
友情链接