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中关于定义命令执行的方法解析

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rGf5Y2X54Wu6YWS,size_20,color_FFFFFF,t_70,g_se,x_16

 

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

江南煮酒

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值