依旧是跟着 feng 师傅的博客进行学习,过一遍feng师傅的笔记,再写到自己的博客上
Runtime
Runtime 类 ,就是运行时环境
public class Runtime {
private static final Runtime currentRuntime = new Runtime();
private static Version version;
public static Runtime getRuntime(){
return currentRuntime;
}
private Runtime(){}
}
这种涉及模式叫做单例模式:
单例模式(Singleton)的目的是为了保证在一个进程中,某个类有且仅有一个实例。
因为这个类只有一个实例,因此,自然不能让调用方使用new Xyz()来创建实例了。所以,单例的构造方法必须是private,这样就防止了调用方自己创建实例,但是在类的内部,是可以用一个静态字段来引用唯一创建的实例的。
那么问题来了,外部调用方如何获得这个唯一实例?
答案是提供一个静态方法,直接返回实例:
或者直接把static变量暴露给外部:
java 进程种 仅 有一个 Runtime 类对象,这个对象通过 getRuntime 方法 获得
private static final Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}
exec方法的调用链
命令执行时 就是使用的exec方法,该方法有如下几种重载
public Process exec(String command)-----在单独的进程中执行指定的字符串命令。
public Process exec(String [] cmdArray)---在单独的进程中执行指定命令和变量
public Process exec(String command, String [] envp)----在指定环境的独立进程中执行指定命令和变量
public Process exec(String [] cmdArray, String [] envp)----在指定环境的独立进程中执行指定的命令和变量
public Process exec(String command,String[] envp,File dir)----在有指定环境和工作目录的独立进程中执行指定的字符串命令
public Process exec(String[] cmdarray,String[] envp,File dir)----在指定环境和工作目录的独立进程中执行指定的命令和变量
ctrl + B 进入 exec 跟进源码
public Process exec(String command) throws IOException {
return exec(command, null, null);
}
继续 跟进exec
public Process exec(String command, String[] envp, File dir)
throws IOException {
if (command.isEm