Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Install4j:安装服务_Java_Postgresql_Windows Services_Install4j - Fatal编程技术网

Java Install4j:安装服务

Java Install4j:安装服务,java,postgresql,windows-services,install4j,Java,Postgresql,Windows Services,Install4j,对于我的安装,我尝试将我的数据库服务器(即postgresql)和应用程序服务器作为服务安装。我知道可以从控制台以管理员身份启动pg_ctl安装postgres。但据我所知,java不可能在管理模式下启动cmd.exe。所以我希望能够在Install4j之前实现它。我看到了示例“hello”项目。但在那里它创建了一个发射器。但是对于postgresql,我需要运行pg_ctl和一些参数。对于ApplicationServer,我有自己的批处理文件作为执行者。对于PGSQL,我已尝试提供windo

对于我的安装,我尝试将我的数据库服务器(即postgresql)和应用程序服务器作为服务安装。我知道可以从控制台以管理员身份启动
pg_ctl
安装
postgres
。但据我所知,java不可能在管理模式下启动
cmd.exe
。所以我希望能够在Install4j之前实现它。我看到了示例“hello”项目。但在那里它创建了一个发射器。但是对于postgresql,我需要运行pg_ctl和一些参数。对于ApplicationServer,我有自己的批处理文件作为执行者。对于PGSQL,我已尝试提供windows参数,即
-N service\u name-D data\u folder
。但在这两种情况下,它都无法启动服务。我还尝试在Windows的“服务”菜单中手动启动,但无法启动。我的帐户设置为“本地系统”


我还尝试过使用“运行可执行文件或批处理文件”操作运行
pg_ctl
,但仍然无法在windows服务列表中找到该服务,更不用说在
命令提示符下运行相同的参数也可以。我添加了我在项目中使用的操作属性的图形。

如果您的安装程序执行了“请求权限”操作,并且您使用“运行可执行文件或批处理文件”操作执行pg_ctl.exe,则该操作将以管理员权限执行,因为该操作的“操作提升类型”属性的默认值为“提升到最大可用权限”。

好。但是“运行可执行文件或批处理文件”操作中的“工作目录”选项到底指的是什么?另外,假设我可以为postgres执行此操作,但我想注册/安装为windows服务的批处理文件又如何?工作目录可能不相关,您可以将其设置为”。“(不加引号)。批处理文件不能用作Windows服务。我尝试了“运行可执行文件或批处理文件”操作,但仍然无法使其工作。为了获得更好的细节,我编辑了我的问题。在操作的配置中,您应该将stderr和stdout重定向到日志文件,并分析pg_ctl命令的输出。