system、runtime 灰太狼 2021-09-11 07:10 330阅读 0赞 import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Map; import java.util.Properties; import lambdaj.end; /* 2017-02-15 13:29:22 * java 提供了 System类 和 runtime 类 来与程序的运行平台进行交互 * system 代表当前 java程序的运行平台 ,程序不能创建system类的对象, * system 提供了一些变量和类方法,允许直接通过system类来调用这些类变量和类方法 * 提供了代表标准输入、输出、错误输出的类变量 * 提供了一些静态方法用于访问 环境变量、系统属性的方法 * 加载文件和动态链接库的方法 * * * 加载文件和动态链接库主要对native方法 (访问操作系统底层硬件设备)java无法实现,必须借助c语言来完成 * 实现步骤 * - java 程序中声明native 修饰的方法 ,类似于abstract 方法, 只有方法签名,没有实现,编译该java 程序,生成一个class文件 * - 用javah 编译第一步生成的class 文件,将产生一个 .h文件 * - 写一个.cpp文件实现native 方法 ,这一步需要包含第2步产生的.h 文件 (这个文件又包含了jdk带的jni.h文件) * - 将第三步的.cpp文件编译成动态链接库文件 * - 在java 中用system类中的loadLibrary 方法或runtime 类的 loadLibrary()方法加载第四步产生的动态链接库文件 * java 就可以调用这个native 方法 */ public class SystemClassj { public static void main(String[] args) throws FileNotFoundException, IOException { // getenv(); // getpro(); // runtimej(); } /* 2017-02-15 21:43:05 * */ private static void runtimej() throws IOException { /*2017年2月15日19:03:55 * runtime 类 * 代表java程序的运行时环境,每个java程序都有一个与之对应的runtime实例, * 应用程序通过该对象与其运行时环境相连, * 应用程序不能创建自己的runtime实例 * 但是可以通过 getruntime方法获取与之关联的runtime对象 * * * runtime 也提供了gc 方法。和runfinalization 方法来通知系统进行垃圾回收、清理系统资源, * 提供 loadLibrary() 方法来加载文件和动态链接库 * * runtime 类代表java程序的运行时环境,可以访问jvm 的相关信息, 处理器数量,内存信息 * */ Runtime runtime = Runtime.getRuntime() ; System.out.println(runtime.availableProcessors()+ "处理器"); System.out.println(runtime.freeMemory() + "空闲内存"); System.out.println(runtime.totalMemory() + "总内存"); System.out.println(runtime.maxMemory() + "最大内存"); //它可以单独启动一个进程来运行操作系统命令 runtime.exec("notepad.exe");/// 打开一个应用程序 } /* * 2017-02-15 13:58:29 * */ private static void getenv() { Map<String, String> eMap = System.getenv(); for (String string : eMap.keySet()) { System.out.println(string + "-----" + eMap.get(string)); } Properties properties = System.getProperties(); // 获取所有的系统属性 // properties.store(new FileOutputStream("properties.txt"), "system // propretis"); // 将所有的系统属性保存在txt } /* * 2017-02-15 13:57:21 * */ private static void getpro() { System.out.println("----"); Map<Object, Object> pMap = System.getProperties(); for (Object object : pMap.keySet()) { System.out.println(object.toString() + "-----" + pMap.keySet()); } } }
还没有评论,来说两句吧...