Java Review (十九、基础类库----系统相关类)

简介: Java Review (十九、基础类库----系统相关类)

 

文章目录

Java 程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特定功能。 Java 提供了 System 类和 Runtime 类来与程序的运行平台进行交互。

System 类

System 类代表 当 前 Java 程序的运行平台,程序不能创建 System 类的对象, System 类提供了 一  些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法。System  类提供了代表标准输入、标准输出和错误输出的类变量,并提供了 一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法 。  下面程序通过 System 类来访问操作的环境变量和系统属性。

SystemTest.java

public test{
  public class SystemTest {
  public static void main(String[] args) throws Exception{
        // 获取系统所有的环境变量
        Map<String,String> env = System.getenv ();
        for (String name : env.keySet()){
           System.out.println(name + " ---> " + env .get(name)) ;
        }
       //获取指定环境变量的值
       System .out .println(System.getenv( "JAVA_HOME ")) ;
       //获取所有的系统属性
       Properties props = System .getProperties();
       //将所有的系统属性保存到 props.txt 文件中
       props.store(new FileOutputStream( "props.txt"),"System Properties ");
       //输出特定的系统属性
       System.out.println(System .getProperty( "os.name"));
     }
}

运行结果

该程序运行结束后还会在当前路径下生成一个 props.txt 文件 , 该文件中记录了当前平台的所有系统属性 。

System类方法

方法 描述
static void gc() 通知系统进行垃圾回收
runFinalization() 通知系统进行资源清理
static long currentTimeMillis() 此方法返回当前时间,单位为毫秒
nanoTime() 此方法返回最精确的可用系统计时器的当前值,单位毫微秒
static int identityHashCode(Object x) 此方法返回相同的哈希代码为给定的对象会由默认hashCode方法(返回),给定对象的类是否重写hashCode()
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 此方法会复制从指定源数组的数组,开始在指定的位置,到目标数组的指定位置。
static String clearProperty(String key) 此方法可删除指定键指示的系统属性。
static Console console() 此方法返回与当前Java虚拟机关联的唯一Console对象(如果有)
static long currentTimeMillis() 此方法返回当前时间,单位为毫秒。
static void exit(int status) 此方法终止当前正在运行的Java虚拟机。
static Map<String,String> getenv() 此方法返回当前系统环境的不可改变的字符串映射视图。
static String getenv(String name) 此方法获取指定的环境变量的值。
static Properties getProperties() 此方法确定当前系统性能。
static String getProperty(String key) 此方法获取指定键指示的系统属性。
static String getProperty(String key, String def) 此方法获取指定键指定的系统属性。
static SecurityManager getSecurityManager() 此方法得到了系统的安全接口。
static int identityHashCode(Object x) 此方法返回相同的哈希代码为给定的对象会由默认hashCode方法(返回),给定对象的类是否重写hashCode()。
static Channel inheritedChannel() 此方法返回从创建此Java虚拟机的实体中继承的通道。
static void load(String filename) 此方法加载使用从本地文件系统中的指定文件名作为一个动态库中的代码文件。
static void loadLibrary(String libname) 此方法加载libname指示参数指定的系统库。
static String mapLibraryName(String libname) 此方法映射库名称为表示本机库的平台特定的字符串。
static void setErr(PrintStream err) 此方法重新分配“标准”错误输出流。
static void setIn(InputStream in) 此方法重新分配“标准”输入流。
static void setOut(PrintStream out) 此方法重新分配“标准”输出流。
static void setProperties(Properties props) 此方法设置系统属性的属性参数。
static String setProperty(String key, String value) 此方法设置指定键指示的系统属性。
static void setSecurityManager(SecurityManager s) 此方法设置系统的安全性。

API:java.lang.System

Runtime 类

Runtime 类代表 Java 程序 的运行时环境,每个 Java 程序都有 一个与之对应的 Runtime 实例 ,  应程序通过该对象与其运行时环境相连。应用程序不能创建自己的 Runtime 实例 , 但可以通过 getRuntime()方法获取与之关联的  Runtime对 象。

与 System 类似的是, Runtime 类也提供了 gc()方法和 runFinalization()方法来通知系统进行垃圾回收  、清理系统资源 , 并提供了 load(String filename)和 loadLibrary(String  libname)方法来加载文件和动态链接库 。

Runtime 类代表 Java 程序的运行 时环境,可以访问JVM的相关信息,如处理器数量 、 内存信息等。

如下程序所示:

RuntimeTest.java

public class RuntimeTest {
  public static void main(String[] args) {
    //获取 Java 程序关联的运行时对象
    Runtime rt = Runtime . getRuntime() ;
    //获取 JVM 相关信息
    System.out.println (" 处理器数量 "+ rt.availableProcessors());
    System.out.println (" 空 闲 内存数: "+ rt. freeMemory () ) ;
    System.out.println ("总 内 存数:"+ rt . totalMemory());
    System.out.println("可用最大 内 存数:"+ rt . maxMemory());
  }
}

Runtime 类还有一个功能 它可以直接单独启动一个进程来运行操作系统的命令,如下程序所示 :

ExecTest.java

public class ExecTest {
  public static void main(String[] args) throws Exception{
    Runtime rt = Runtime .getRuntime () ;
    rt.exec ("notepad.exe") ;
  }
}

API:java.lang.Runtime


参考:

【1】:《疯狂Java讲义》

【2】:https://www.yiibai.com/java/lang/java_lang_system.html


目录
相关文章
|
10天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
32 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
10天前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
27 1
|
10天前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
23 0
java基础(13)String类
|
8天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
23 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
9天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
21 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
9天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
21 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
10天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的房产销售管理系统
基于Java+Springboot+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
25 3
基于Java+Springboot+Vue开发的房产销售管理系统
|
11天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的反诈视频宣传系统
基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
41 4
基于Java+Springboot+Vue开发的反诈视频宣传系统
|
12天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的健身房管理系统
基于Java+Springboot+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的健身房管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
42 5
基于Java+Springboot+Vue开发的健身房管理系统
|
11天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
31 2
基于Java+Springboot+Vue开发的医院门诊预约挂号系统
下一篇
无影云桌面