如何在没有用户交互的情况下通过Java查找PostgreSQL安装文件夹?

时间:2011-07-25 10:27:28

标签: java postgresql processbuilder pg-dump

在我的Java应用程序中,我想实现转储/恢复PostgreSQL数据库的选项。一些谷歌研究表明,通过Java的ProcessBuilder调用pg_dump / pg_restore可能是实现这一目标的最佳方法。

现在我想确定pg_dump.exe / pg_restore.exe 的系统目录,而要求用户手动指定它。如何通过Java找到PostgreSQL安装路径?

先谢谢你 一切顺利,

的Matthias

3 个答案:

答案 0 :(得分:1)

一个好主意是简单地定义一个名为PG_HOME的环境变量,并使用System.getEnv("PG_HOME");来检索它。

答案 1 :(得分:1)

你无法轻易做到这一点。我建议您默认情况下只调用没有路径的程序,并依赖用户设置适当的路径,并让用户明确配置路径。您还可以在某些可能的目录中查找默认配置。但总的来说它会非常脆弱,特别是如果你想覆盖所有的Windows,Linux和Mac,比如说。

答案 2 :(得分:0)

  1. 首先查看默认目录(可能是某处C:\Program Files (x86)\PostgreSQL\...)。使用不同的组合尽可能容忍。

  2. 如果失败,只需搜索文件系统。很好的例子here

  3. 另见How to do a backup from a Postgresql-DB via JDBC?