在我的 Java 应用程序中,我想实现转储/恢复 PostgreSQL 数据库的选项。一些谷歌研究表明,通过 Java 的 ProcessBuilder 调用 pg_dump/pg_restore 可能是实现这一目标的最佳方法。
现在我想确定 pg_dump.exe/pg_restore.exe 的系统目录,而不要求用户手动指定它。如何通过Java找到PostgreSQL的安装路径?
在此先感谢并祝一切顺利,
马蒂亚斯
在我的 Java 应用程序中,我想实现转储/恢复 PostgreSQL 数据库的选项。一些谷歌研究表明,通过 Java 的 ProcessBuilder 调用 pg_dump/pg_restore 可能是实现这一目标的最佳方法。
现在我想确定 pg_dump.exe/pg_restore.exe 的系统目录,而不要求用户手动指定它。如何通过Java找到PostgreSQL的安装路径?
在此先感谢并祝一切顺利,
马蒂亚斯
一个好主意是简单地定义一个名为PG_HOME
并用于System.getEnv("PG_HOME");
检索它的环境变量。
你不能便携地做到这一点。我建议您在默认情况下只调用没有路径的程序,并依赖用户设置了适当的路径,并为用户提供一种明确配置路径的方法。您还可以在一些可能的目录中查找默认配置。但总的来说,它会非常脆弱,特别是如果你想覆盖所有的 Windows、Linux 和 Mac。
首先查看默认目录(可能在某处C:\Program Files (x86)\PostgreSQL\...
)。尽可能多地使用不同的组合。
如果失败,只需搜索文件系统。很好的例子。