java - 在停止当前进程的同时启动外部进程
问题描述
不知道什么是正确的词,或者这是否可能。
我想在同一个终端窗口中启动一个外部进程并停止当前进程。
(我想避免为子进程管道 I/O 流。)
public static void main(String[] args) {
String ip = chooseFromCommandLine();
String cmdLine = "ping " + ip;
// launch cmdLine in the same terminal and exit this process
}
本质上是为终端创建一个“启动器”类型的应用程序。
解决方案
在 UNIX / Linux / POSIX 中,这方面的术语是“执行”应用程序。当前执行的进程被一个新的应用程序替换。
不幸的是,你不能在纯 Java 中做到这一点。您可以使用从 Java 调用的本机代码来完成此操作。
Java 的等方法在子进程中执行Runtime.exec(...)
相当于 POSIX的操作。换句话说,父进程(即JVM)一直在运行。fork
exec
推荐阅读
- odoo - 精度小数
- c++ - 修改找到最大 sub 小于或等于给定 sum 的子数组的 c++ 代码
- linux - 串行端口不适用于 .net core 3.1 中的 linux-x64
- python - 熊猫如何在数据框中的两个行值之间添加附加值
- excel - VBA 错误 400 循环遍历范围(36378 行)
- python - 列表理解可以帮助缩短此代码吗?
- rust - 分配给取消引用的自我 - 它有什么作用?
- sql - 从 SQL 列读取 XML 节点值
- python - python中是否有一个好的框架或包来比较一些参数?
- pyspark - 是否可以将每个 aws 胶水动态记录写入不同的 s3 路径