------- android培训、java培训、期待与您交流! ----------
二、Runtime类
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
2.1、构造函数
Runtime类并没有提供构造函数,说明不可以new对象,那么该类中的方法都是静态的。
在Runtime类的定义中没有构造方法,因为其构造方法被私有化了,即被设计成单例模式了,那么在此类中必然有一个静态方法可以返回本类的实例化对象。
由这个特点可以看出该类使用了单例设计模式完成。
2.2、成员方法
Runtime类中的方法并不常用,但有些是需要特别注意的,如下:
(1)、exce()方法
该方法在单独的进程中执行指定的字符串命令。
使用示例:
class RuntimeDemo
{
public static void main(String[] arg) throws Exception
{
Runtime r = Runtime.getRuntime();
//可以执行各类文件 但必须抛出异常
r.exec("c:\\qq.exe");
}
}
1、如何执行非系统注册的命令比如Windows的dir。
请使用命令 "cmd /c dir"
其他情况类似
2、如何打开带空格的外部文件或文件夹。
最基本的打开外部文件的方式 "cmd /c start 文件",若文件名有空格,则会出现错误,请使用以下方式解决
String[] cmd = new String[5];
cmd[0] = "cmd";
cmd[1] = "/c";
cmd[2] = "start";
cmd[3] = " ";
cmd[4] = "E:\\kk sd\\www.txt";
Process process = Runtime.getRuntime().exec(cmd);
或
Process process = Runtime.getRuntime().exec("cmd /c start \"\" \"E:\\kk sd\\www.txt\"");
3、调用外部程序来打开一个相应的文件
比如我们要使用Editplus来打开一个远程机器上的文件,可以这样
Runtime.getRuntime().exec("D:\\EditPlus 2\\EditPlus.exe"+" "+\\\\172.16.1.6\\server1\\SystemErr.log)
即
Runtime.getRuntime().exec("外部程序位置"+" "+"要打开的文件").以此方式可以忽略空格的问题
2.3、个人总结
Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。 一旦得到了一个当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。