Java:popen() - 喜欢函数?

Mar*_*son 8 java popen

这是在本地处理程序的上下文中.我想运行一个外部程序来获取一些数据.我可以使用popen()或等效函数吗?

Boz*_*zho 10

Process process = Runtime.getRuntime().exec("your command");
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用Process流读取和写入数据.


phi*_*phi 5

JDK5引入了ProcessBuilder来更好地控制进程的生成。

Process process = new ProcessBuilder(command).start()
Run Code Online (Sandbox Code Playgroud)

请注意,内部会调用 forkAndExec,并且 fork 会“复制整个父进程地址空间”,因此,当父进程获取大量内存空间时,即使是一个小命令也可能导致 OutOfMemoryErrors。

看这里