Java Runtime类源码分析(开发“Java命令执行器”前期准备)

介绍Runtime类中执行windows/linux命令的所涉及的定义方法

在Java中什么是Runtime?

每个 Java 应用程序都有一个Runtime类的单个实例,它允许应用程序与应用程序运行的环境进行交互。(任何人) 可以从getRuntime方法获取当前运行时。

Runtime中定义方法解析

//返回与当前 Java 应用程序关联的运行时对象。 Runtime类的大多数方法都是实例方法,必须针对当前运行时对象调用。    
public static Runtime getRuntime() {
        //currentRuntime = new Runtime(),Runtime构造器不做任何动作,空构造器。
        return currentRuntime;
}

//通过启动其关闭序列来终止当前运行的 Java 虚拟机,status用于指定退出代码。
//System.exit就是调用此方法
public void exit(int status) {}

//注册一个新的虚拟机关闭钩子。
//hook线程在Java 虚拟机关闭时被响应;
//虚拟机会等待这些钩子执行完才完成关闭,因此hook线程不建议执行长时间计算。
//响应事件:当最后一个非守护线程退出或调用exit (相当于System.exit )方法时,或虚拟机响应用户中断(例如键入^C )或系统范围的事件(例如用户注销或系统关闭)而终止。
public void addShutdownHook(Thread hook){}

//取消注册先前注册的虚拟机关闭挂钩,如果指定的挂钩先前已注册并成功取消注册,则为true ,否则为false 。
public boolean removeShutdownHook(Thread hook) {}

//强制终止当前运行的 Java 虚拟机。
//此方法不会导致关闭挂钩启动,并且不会运行未调用的终结器。
//立即关闭
public void halt(int status)

//返回 Java 虚拟机可用的处理器数(举例:4核心8线程,返回8)。
public native int availableProcessors()

//返回 Java 虚拟机中的可用内存量。 调用gc方法可能会导致freeMemory,返回的值增加freeMemory。
//当前可用于未来分配的对象的内存总量的近似值,以字节为单位。
public native long freeMemory()

//返回 Java 虚拟机中的总内存量。
public native long totalMemory()

//返回 Java 虚拟机将尝试使用的最大内存量。 如果没有固有限制,则将返回值Long.MAX_VALUE 。
public native long maxMemory()

//运行垃圾收集器。 
//调用此方法表明 Java 虚拟机将努力回收未使用的对象,以使它们当前占用的内存可用于快速重用。 当控制从方法调用返回时,虚拟机已尽最大努力回收所有丢弃的对象。
//尝试gc,也不一定会被执行
//System.gc()就是调用此方法。
public native void gc()

public void runFinalization()
public native void traceInstructions(boolean on)
public native void traceMethodCalls(boolean on)
public void load(String filename)
public void loadLibrary(String libname)

 Runtime中关于定义命令执行的方法解析

おすすめ

転載: blog.csdn.net/qq_40100414/article/details/121351125