我正在使用Runtime.getRuntime().exec(cmd)
来启动PostgreSQL服务器。当使用上述命令启动服务器时,我看到除了Runtime.getRuntime().exec()
进程之外,正在创建新进程以启动进程。Java将参数传递给子进程
john 14330 0.0 0.0 128244 2568 pts/88 S+ 19:35 0:00 pg_ctl -D /u/john/postgre_test/data/ start -w
john 14334 9.5 0.0 124592 3736 pts/88 S+ 19:35 0:00 /usr/bin/postgres -D /u/john/postgre_test/data
正如您所看到的,第一个是由于exec()方法创建的,而第二个也是创建的。现在,因为服务器需要传递SSL私钥密码。如果我通过它使用
PrintStream ps = new PrintStream(process.getOutputStream());
ps.println(keyPassword);
ps.flush();
我想这不是设置为预期的过程,所以服务器没有开始。我如何将参数传递给最近创建的进程?还是有其他方法可以使它工作吗?请帮助我。任何帮助或建议将非常感激。
so process是Runtime.getRuntime()。exec(cmd)返回的对象? –
当您创建进程时,可能会有命令行参数构建到字符串的末尾。你将如何编写一个'单行'从控制台提示符启动服务器? – DomV