在 Java 中,一个应用程序对应着一个 JVM 实例,一般来说名字默认为 java.exe 或者 javaw.exe(windows下可以通过任务管理器查看)。Java 采用的是单线程编程模型,即在我们自己的程序中如果没有主动创建线程的话,只会创建一个线程,通常称为主线程。但是要注意,虽然只有一个线程来执行任务,不代表 JVM 中只有一个线程,JVM 实例在创建的时候,同时会创建很多其他的线程(比如垃圾收集器线程)。
由于 Java 采用的是单线程编程模型,因此在进行 UI 编程时要注意将耗时的操作放在子线程中进行,以避免阻塞主线程(在 UI 编程时,主线程即 UI 线程,用来处理用户的交互事件)。
一、Java 创建进程
1. 通过 Runtime.exec() 方法来创建一个进程.
调用系统命令创建进程并且获取其命令输出,使用 Runtime.exec(String cmd) :
public class ListNetStatus {
public static String executeCommand(String cmd) throws IOException {
Process ps = Runtime.getRuntime().exec(cmd);
Scanner scanner = new Scanner(ps.getInputStream());
StringBuilder result = new StringBuilder();
while (scanner.hasNextLine()) {
result.append(scanner.nextLine());
result.append(System.getProperty("line.separator"));
}
scanner.close();
return result.toString();
}
// 列出服务器当前网络状态
public static void main(String[] args) throws InterruptedException, IOException {
System.out.println(executeCommand("netstat"));
}
}
Runtime.exec(String cmd) And
exec(cmdarray, envp),Runtime.getRuntime().exec(cmdarray)
# 都是调用
Runtime.getRuntime().exec(String[] cmdarray, String[] envp, File dir)
Runtime.getRuntime().exec(String[