当前位置: 首页 > 教程 > Java多线程 >

Java Runtime类

精华
小牛编辑
125浏览
2023-03-14

1 什么是Java Runtime类

Java Runtime类用于与Java运行时环境进行交互。Java Runtime类提供了用于执行进程,调用GC,获取总内存和可用内存等的方法。

Runtime.getRuntime() 方法返回Runtime类的实例。

2 Java Runtime类的重要方法

方法 描述
public static Runtime getRuntime() 返回Runtime类的实例。
public void exit(int status) 终止当前虚拟机。
public void addShutdownHook(Thread hook) 注册新的关闭钩子线程。
public Process exec(String command)throws IOException 在一个单独的过程中执行给定的命令。
public int availableProcessors() 返回是否可用的进程。
public long freeMemory() 返回JVM中的可用内存量。
public long totalMemory() 返回JVM中的总内存量。

3 Java Runtime的exec()方法

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Runtime的exec()方法
 */
public class Demo{

    public static void main(String args[])throws Exception{
        Runtime.getRuntime().exec("notepad");//will open a new notepad
    }
}

3.1 如何使用Java关闭window系统

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Runtime的exec()方法
 */
public class Demo{

    public static void main(String args[])throws Exception{
        Runtime.getRuntime().exec("c:\\Windows\\System32\\shutdown -s -t 0");
    }
}

3.2 如何使用Java重启window系统

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Runtime的exec()方法
 */
public class Demo{

    public static void main(String args[])throws Exception{
        Runtime.getRuntime().exec("shutdown -r -t 0");
    }
}

4 Java Runtime的availableProcessors()方法

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Runtime的availableProcessors()方法
 */
public class Demo{

    public static void main(String args[])throws Exception{
        System.out.println(Runtime.getRuntime().availableProcessors());
    }
}

5 Java Runtime的freeMemory()和totalMemory()方法

在给定的程序中,创建10000个实例后,可用内存将小于以前的可用内存。但是在gc()调用之后,您将获得更多的可用内存。

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Runtime的freeMemory()和totalMemory()方法
 */
public class Demo{

    public static void main(String args[])throws Exception{
        Runtime r=Runtime.getRuntime();
        System.out.println("Total Memory: "+r.totalMemory());
        System.out.println("Free Memory: "+r.freeMemory());

        for(int i=0;i<10000;i++){
            new Demo();
        }
        System.out.println("After creating 10000 instance, Free Memory: "+r.freeMemory());
        System.gc();
        System.out.println("After gc(), Free Memory: "+r.freeMemory());
    }
}

输出结果为:

Total Memory: 100139008
Free Memory: 99474824
After creating 10000 instance, Free Memory: 99310552
After gc(), Free Memory: 100182832