Runtime--程序与系统环境相关方法

package ioc;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Date;
import java.util.Properties;


/**
 * @Author:zhuo
 * @Date:2018/4/27 11:47
 */


public class SystemInfoPrint {

    public static void main(String[] args) {


        /**
         * 1.打印配置文件到外部文件及标准输出
         * 2.介绍runtime的内存概念
         * 3.介绍runtime的其他方法
         */

        // 1.打印配置
        System.out.println(new Date());
        Properties p = System.getProperties(); // 获取系统属性
        Writer writer = null;
        try {
            writer = new PrintWriter("system_info.txt");
            p.store(writer,null);  //存储配置到外部对象文件中
        } catch (IOException e) {
            e.printStackTrace();
        }

        p.list(System.out); //在标准输出流中打印properties的属性清单





        // 每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用程序的环境进行交互。
        // 当前运行时可以从getRuntime获取。应用程序无法创建自己的此类的实例。
        Runtime runtime = Runtime.getRuntime();  // 获取运行实例
        //2.内存使用相关
        System.out.println("下面打印内存使用情况");
        // 虚拟机当前可用的最大内存maxMemory,通过向操作系统申请获得。如果没有通过选项配置,是一定的。单位为:MB
        System.out.println("最大内存"+runtime.maxMemory()/1024/1024);
        // 虚拟机当前运行程序使用的内存,单位为:MB
        System.out.println("已用内存"+runtime.totalMemory()/1024/1024);


        //3.其他重要的runtime方法介绍
        System.out.println(runtime.availableProcessors());//返回可用于java虚拟机的处理器数量
        // exec() 一连串方法,用于开启子进程
        try {
            byte[] buff = runtime.exec("ping " + "www.baidu.com").getInputStream().readAllBytes(); // 测试网络连接
            String info = new String(buff);
            System.out.println(info);   //打印ping的结果, 根据平台编码,可能产生中文乱码
        } catch (IOException e) {
            e.printStackTrace();
        }
        //runtime.load(String filename);   加载作为动态库的指定文件名。
        //loadLibrary(String libname); 加载具有指定库名的动态库,关于java如何调用动态库下一节将为大家介绍
        //halt​(int status); 状态码status<0表示非正常终止 ,函数强制终止当前正在运行的Java虚拟机,慎用
        //void gc(); 垃圾收集器 ,主动调用无法立即进行垃圾清理,只是提示VM需要清理了,何时清理由VM确定
    }
}

你可能感兴趣的:(Runtime,系统环境,java)