是否可以使用jvm模式通过prunsrv启动Java运行时映像?

问题描述 投票:5回答:1

背景:由于Java 9,可以使用custom runtime images创建jlink(JRE +程序)。

可以使用prunsrv.exeApache Commons Daemon的一部分)将Java程序作为Windows服务安装。

prunsrv可以在三种启动模式下使用:javajvmexe

我设法使用exe模式启动了自定义运行时映像,并使用了jvm模式启动了传统的Java程序(类路径+普通JDK),但是我无法使用jvm模式(不会启动新过程)。

prunsrv具有一个“ JvmOptions9”参数,这可能表明可能支持此方案,但我不确定。

java-9 java-module jlink apache-commons-daemon prunsrv
1个回答
0
投票

起初我遇到了同样的问题,但是设法解决了。尽管这是一个老问题,但它是我搜索时发现的第一个问题,因此我将为其他人提供答案。

我可以毫无问题地安装该服务,但是当我尝试以jvm模式启动该服务时,它将失败并抱怨“%1不是有效的Win32应用程序”。这里的关键字是Win32。

prunsrv可执行文件有两个版本:一个在安装目录中,一个在amd64子目录中。安装目录中的版本仅支持32位,而amd64中的版本仅支持64位代码。 prunsrv和Java版本必须均为32位或64位。我试图从32位prunsrv服务启动64位Java VM。

换句话说,请确保使用了用于目标Java VM的正确版本的prunsrv。这样,我就可以运行带有精简运行时映像的模块化Java 9(或实际上12)应用程序,而不会出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.