2

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

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

在此先感谢并祝一切顺利,

马蒂亚斯

4

3 回答 3

1

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

于 2011-07-25T10:53:30.967 回答
1

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

于 2011-07-25T11:30:50.763 回答
0
  1. 首先查看默认目录(可能在某处C:\Program Files (x86)\PostgreSQL\...)。尽可能多地使用不同的组合。

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

  3. 另请参阅如何通过 JDBC 从 Postgresql-DB 进行备份?

于 2011-07-25T10:40:54.850 回答