Java已经具有内置功能,可以使用或不使用系统命令解释程序来执行命令。 ProcessBuilder
和Runtime.getRuntime().exec()
中的功能提供了此功能。但是,这些类都不允许您将进程替换为您正在执行的进程;他们只是产生一个子进程并继续。
exec()
函数(以及execl
和execv
之类的变体)的作用是(实质上)将当前进程替换为exec调用指定的进程。它可以在POSIX systems和Windows上使用。
有没有办法在Java中复制其功能?从理论上讲,我可以为Windows,macOS,Linux,BSD,Solaris等编写本机绑定,但这对于理论上可以在使用纯Java的跨平台中进行的事情来说,这听起来非常糟糕。