对于我的安装,我正在尝试将我的数据库服务器(即postgresql)和我的应用程序服务器安装为服务。我知道可以通过启动管理员从控制台使用postgres
安装pg_ctl
。但据我所知,java无法在管理模式下启动cmd.exe
。所以我希望能够通过Install4j实现它。我看到了示例“hello”项目。但它创造了一个发射器。但在我的postgresql案例中,我需要运行pg_ctl和一些参数。对于应用程序服务器,我有自己的批处理文件作为执行程序。对于PGSQL,我尝试过提供Windows参数,即-N service_name -D data_folder
。但对于这两种情况,它都无法启动服务。我也尝试从Windows的“服务”菜单手动启动它。我将帐户设置为“本地系统”。
我还尝试使用“运行可执行文件或批处理文件”操作运行pg_ctl
但仍然无法在Windows服务列表中找到该服务,更不用说command prompt
中相同的参数工作正常。我添加了一个我在项目中使用的动作属性的图。
答案 0 :(得分:1)
如果您的安装程序已执行“请求权限”操作并且您执行带有“运行可执行文件或批处理文件”操作的pg_ctl.exe,则将使用管理员权限执行该操作,因为“操作提升类型”的默认值“该操作的属性是”提升到最大可用权限“。