我是一个刚开始学习基于Java的多线程编程的学生。
作为我的第一个练习之一,我被告知创建一个执行 Windows 计算器的进程,然后等待该进程完成,然后发送消息。这是我所做的代码的摘录。
Process p = Runtime.getRuntime().exec("calc.exe");
p.waitFor();
System.out.println("Process finished");
当我执行它时,Windows 10 计算器打开,然后我收到“处理完成”消息。我不知道为什么在进程仍在运行时收到消息,因为计算器是打开的,所以我尝试运行完全相同的代码,但使用“notepad.exe”作为要执行的命令。
这次执行的结果是预期的:直到我关闭记事本才收到消息。
我尝试打开其他Windows 10默认程序,作为“explorer.exe”,有些程序按照它应该的方式工作,而其他程序则没有。
我对它的工作方式的想法是“explorer.exe”或“calc.exe”像某种启动器一样工作,所以当他们收到一个执行它们的进程时,他们创建自己的进程,我无法用Java控制程序。这完全是我的猜测。
在实际的问题是:为什么会发生呢?Windows 10 计算器和其他程序在进程方面如何工作?
提前致谢。
吃鸡游戏
相关分类