让 SOS Job Scheduler 1.13 与 AdoptOpenJDK 配合使用

让 SOS Job Scheduler 1.13 与 AdoptOpenJDK 配合使用

有人知道如何获得SOS 作业调度器版本 1.13 可以在 Windows 上与 AdoptOpenJDK JDK 8 配合使用吗?Job Scheduler 本身似乎可以工作,但是 JOC 工具无法运行,因为找不到 JVM。

JOC 的 Windows 服务卡在“正在启动”状态,其日志文件中出现以下内容:

[2019-12-08 12:14:36] [info]  [ 2168] Commons Daemon procrun (1.0.15.0 64-bit) started
[2019-12-08 12:14:37] [info]  [ 2168] Running 'sos_joc' Service...
[2019-12-08 12:14:37] [error] [ 2916] Unable to find Java Runtime Environment.

我目前正在运行 SOS Job Scheduler 1.11,并且能够通过设置属性vmconfig\factory.ini指向config\sos.iniAdoptOpenJDKbin\server\jvm.dll安装内部来运行它。我在 1.13 Job Scheduler 配置中设置了相同的内容。但我在 JOC 1.13 的“Jetty”配置文件中没有看到任何地方可以进行类似的设置。

我已按照 SOS 配置文件的建议将 AdoptOpenJDK JRE 目录添加到系统中%PATH%,但这没有明显效果。我还设置了系统%JAVA_HOME%%JRE_HOME%指向 AdoptOpenJDK;同样没有效果。无论如何我都不想做这些事情,因为这些是全局设置,会影响也在此服务器上运行的其他应用程序。

我们没有运行 Oracle JDK/JRE,因为 Oracle 的新 Java 许可条款规定,它不再免费用于生产用途。

这是 Azure 上的 Windows Server 2016 数据中心。

答案1

这可能有点晚了,但我已经让它工作了。您的路径可能不同,所以我会在运行命令之前检查这些路径。方法如下。

从以下位置安装 OpenJDK13U-jdk_x64_windows_openj9_13.0.2_8_openj9-0.18.0.msi https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_windows_openj9_13.0.2_8_openj9-0.18.0.msi

确保系统环境变量 JAVA_HOME 设置为 AdoptOpenJDK 路径。我的路径是 C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9\bin,应该是默认路径。

还要确保系统环境变量 PATH 包含 AdoptOpenJDK 路径。

使用管理权限打开命令提示符,运行以下命令-

"C:\Program Files\sos-berlin.com\joc\service\set_java_home_for_jetty_windows_service.cmd" "C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9"
cd "C:\Program Files\sos-berlin.com\joc\jetty_base"
"C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-openj9\bin\java" -jar "C:\Program Files\sos-berlin.com\joc\jetty\start.jar" --create-startd --add-to-start=jsp

你仍然会收到如下错误:

Error scanning entry com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class from jar file:///C:/Users/Username/.m2/repository/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"

这是此版本的 icu4j-2.6.1.jar 文件的已知问题。您必须替换它。从以下位置下载 icu4j-65_1.jar 文件 https://github.com/unicode-org/icu/releases/download/release-65-1/icu4j-65_1.jar

C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war 文件必须使用新的 icu4j 文件进行更新。

将 joc.war 复制到其自己的临时文件夹。
在打开的命令提示符中运行以下命令:

cd C:\YourTempFolder
jar -xvf joc.war

删除WEB-INF\lib文件夹中的icu4j-2.6.1.jar文件。将icu4j-65_1.jar文件复制到WEB-INF\lib文件夹中。

在打开的命令提示符中运行以下命令:

rm joc.war   
jar -cvf joc.war *
rename "C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war" "C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps\joc.war.old"
copy joc.war C:\ProgramData\sos-berlin.com\joc\jetty_base\webapps

重新启动机器。

打开任务管理器,选择“服务”选项卡,确保 sos_scheduler_YourMachinename_40444 服务正在运行。如果没有,请确保 sos_joc 服务已停止,然后启动 sos_scheduler_YourMachinename_40444 服务。一旦该服务运行,请启动 sos_joc 服务。

单击桌面上的链接打开 JOC。一切就绪。

相关内容