JAVA API系列----System与Runtime类

·Java不支持全局函数和全局变量,Java将一些与系统相关的重要的函数和变量统一放在System类中。

·System类中所有的成员都是静态的(static),使用时可以直接用类名System做前缀,如System.out.print();

   --exit方法:exit方法可以结束java虚拟机的运行。若因为程序发生异常而想结束程序的运行(如要打开一个文件而文件不存在,则后续  工作无法进行),则在exit*(int status)中传递一个非零 的参数;若在正常操作下要结束程序(如用户点击“关闭”按钮),则传入0作 为参数。

   --currentTimeMillis方法:返回自1970年1月1日0点0分0秒起到当前时刻以毫秒为单位的时间值,可以用来检测运行一段程序所花费的时间。

      long startTime = System.currentTimeMillis();
      long endTime = System.currentTimeMillis();
      System.out.println("Program runs "+(endTime-startTime)+" ms");

  --Java虚拟机的系统属性:也称为java虚拟机的系统环境变量,是在操作系统中定义的变量,可以被操作系统上的所有应用程序使用。

  --getProperties和setProperties方法:分别用于设置和获取java虚拟机的系统属性,返回值和参数分别是Properties类的对象。

·编程举例:打印出当前java虚拟机的所有属性。

import java.util.Enumeration; import java.util.Properties; public class TestProperties { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Properties sp = System.getProperties(); Enumeration e = sp.propertyNames();//返回属性列表中所有键的枚举 while(e.hasMoreElements()){ String key = (String)e.nextElement(); System.out.println(key+"="+sp.getProperty(key)); } } }

 

·Runtime类

   Runtime类封装了java虚拟机的启动进程,一个java虚拟机对应一个Runtime实例对象。Runtime中许多方法与Syste类中方法重复, 但是我们不能直接创建Runtime类的实例对象,只能通过静态方法Runtime.getRuntime来获得Runtime的实例对象的引用。

·Java虚拟机本身就是Windows操作系统上的一个进程,这个进程可以启动其他windows系统上的运行实例被称为子进程,java虚拟机调用Runtime的exec()方法可以启动子进程,返回值是一个代表子进程的Process类对象。

·编程实例:在Java程序中启动一个Windows记事本程序的运行实例,并在该运行实例中打开这个java程序的源文件,启动的记事本程序 5秒钟后被关闭。

import java.io.IOException; import java.util.Enumeration; import java.util.Properties; public class TestProperties { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Properties sp = System.getProperties(); Enumeration e = sp.propertyNames();//返回属性列表中所有键的枚举 while(e.hasMoreElements()){ String key = (String)e.nextElement(); System.out.println(key+"="+sp.getProperty(key)); } Process p = null; try { p = Runtime.getRuntime().exec("notepad.exe TestProperties.java");//TestProperties.java文件要放在TestProperties文件夹根目录下 } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { Thread.sleep(5000); } catch (InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } p.destroy(); } }

你可能感兴趣的:(JAVA)