Java中的Runtime类详解
1.类注释
/**
Every Java application has a single instance of class Runtime that allows the application to interface with
the environment in which the application is running. The current runtime can be obtained from the getRuntime method.
每个java应用有单个类Runtime实例【让我想起了单例】,这允许应用去和应用正在运行的环境交互。目前的runtime对象能够从getRuntime()方法中获得。
An application cannot create its own instance of this class.
应用程序本身不能创建这个类(Runtime)的实例
@author unascribed
@see java.lang.Runtime#getRuntime()
@since JDK1.0
*/
2.类代码
- 拥有一个静态初始化对象——饿汉模式(感谢评论区的各位指正)。
private static Runtime currentRuntime = new Runtime();
- getRuntime()方法
/**
Returns the runtime object associated with the current Java application.Most of the methods of class Runtime are instance methods and must be invoked with respect to the current runtime object.
返回与当前Java应用关联的runtime对象。大多数Runtime类的方法是实例方法,所以必须被调用与具体的当前运行时对象。
@return the Runtime object associated with the current Java application.
*/
public static Runtime getRuntime() {
return currentRuntime;
}
- availableProcessors()方法
/**
Returns the number of processors available to the Java virtual machine.
返回Java虚拟机可用的处理器数。
This value may change during a particular invocation of the virtual machine. Applications that are sensitive to the number of available processors should therefore occasionally poll this property and adjust
their resource usage appropriately.
@return the maximum number of processors available to the virtual machine; never smaller than one
@since 1.4
*/
public native int availableProcessors();
}
exec(String command)
方法
/**
Executes the specified string command in a separate process.
在一个单独的进程中执行指定的命令。
This is a convenience method. An invocation of the form exec(command)
behaves in exactly the same way as the invocation #exec(String, String[], File) exec(command, null, null).
这是一个方便的方法。以exec(command)形式调用与exec(String,Stringp[],file)的表现是相同的。
@param command a specified system command.【参数:一个指定的系统命令】
@return A new Process object for managing the subprocess【返回值:一个新的用于管理子进程的的Process对象】
@throws SecurityException
If a security manager exists and its
{@link SecurityManager#checkExec checkExec}
method doesn't allow creation of the subprocess
@throws IOException
If an I/O error occurs
@throws NullPointerException
If <code>command</code> is <code>null</code>
@throws IllegalArgumentException
If <code>command</code> is empty
@see #exec(String[], String[], File)
@see ProcessBuilder
*/
public Process exec(String command) throws IOException {
return exec(command, null, null);
}