我使用下面的java语句从java代码启动Postgresql服务器.我使用Runtime.getRuntime().exec()方法来实现这一点.
final Process startServer = Runtime.getRuntime().exec("PostgreQL -D data/dir/ start");
这里当服务器启用SSL并且密钥受密码保护时,在命令行中它会提示输入密码(参见下面的行).在这种情况下,我如何传递密码.
Is server running?
starting server anyway
waiting for server to start......Enter PEM pass phrase:....
在提示时,我们是否有任何选项可以将密码作为参数传递?或者在开始时在Postgresql中我们有任何传递keypassword的规定(比如 – “Postgresql -d data / dir / -keyPass password start”)?
请帮帮我.任何帮助或建议将非常感激.提前致谢.
解决方法:
您可以打开进程的OutputStream并传递将由服务器读取的密码,就像您键入的密码来自STDIN一样.
final Process startServer = Runtime.getRuntime().exec("PostgreQL -D data/dir/ start");
PrintStream ps = new PrintStream(startServer.getoutputStream());
ps.println(passphrase);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。