Install4j:安装服务

Install4j: installing a service

对于我的安装,我试图将我的数据库服务器(它是 postgresql)和我的应用程序服务器安装为服务。我知道可以通过以管理员身份从控制台使用 pg_ctl 安装 postgres。但据我所知,java 无法在管理模式下启动 cmd.exe。所以我希望能够通过 Install4j 来实现它。我看到了示例 "hello" 项目。但是它在那里创建了一个启动器。但就我的 postgresql 而言,我需要 运行 pg_ctl 以及一些参数。对于应用程序服务器,我有自己的批处理文件作为执行者。对于 PGSQL,我尝试给出 windows 个参数,即 -N service_name -D data_folder。但对于这两种情况,它都无法启动服务。我还尝试从 Windows 中的“服务”菜单手动尝试启动失败。我的账户设置为 "local system".

我也尝试过 运行ning pg_ctl 使用 "run executable or batch file" 操作,但我仍然无法在 windows 服务列表中找到该服务,更不用说相同的了arguments 从 command prompt 开始工作正常。我已经添加了我在项目中使用的动作属性的数字。

如果您的安装程序执行了 "Request privileges" 操作,而您执行 pg_ctl.exe 和 "Run executable or batch file" 操作,它将以管理员权限执行,因为 "Action elevation type" 属性 那个动作是 "Elevate to maximum available privileges".