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

如何在没有用户交互的情况下通过Java查找PostgreSQL安装文件夹?,java,postgresql,processbuilder,pg-dump,Java,Postgresql,Processbuilder,Pg Dump,在我的Java应用程序中,我想实现转储/恢复PostgreSQL数据库的选项。谷歌的一些研究表明,通过Java的ProcessBuilder调用pg_dump/pg_restore可能是实现这一点的最佳方法 现在,我想确定系统的目录pg_dump.exe/pg_restore.exe,而不要求用户手动指定它。如何通过Java找到PostgreSQL安装路径 提前感谢,谢谢 祝你一切顺利 马蒂亚斯 首先查看默认目录(可能是C:\ProgramFiles(x86)\PostgreSQL\…)。尽可能

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

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

提前感谢,谢谢 祝你一切顺利

马蒂亚斯

  • 首先查看默认目录(可能是
    C:\ProgramFiles(x86)\PostgreSQL\…
    )。尽可能使用不同的组合,使其具有可容忍性

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

  • 也看到


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

    您不能通过便携方式进行检索。我建议您在默认情况下只调用不带路径的程序,并依赖于用户设置了适当的路径,并且有一种方法供用户显式配置路径。您还可以在一些可能的目录中查找默认配置。但是它通常是非常脆弱的,特别是如果你想覆盖所有的Windows、Linux和Mac,比如说。

    请不要搜索文件系统。它可能是一个大文件系统。