![让 SOS Job Scheduler 1.13 与 AdoptOpenJDK 配合使用](https://linux22.com/image/745958/%E8%AE%A9%20SOS%20Job%20Scheduler%201.13%20%E4%B8%8E%20AdoptOpenJDK%20%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8.png)
有人知道如何获得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,并且能够通过设置属性vm
并config\factory.ini
指向config\sos.ini
AdoptOpenJDKbin\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 路径。
- 从以下位置安装 jobscheduler_windows-x64.1.13.2.zip https://sourceforge.net/projects/jobscheduler/files/JobScheduler.1.13/JobScheduler.1.13.2/jobscheduler_windows-x64.1.13.2.zip/download
- 从以下位置安装 jobscheduler_windows-x64_joe.1.13.2.zip https://sourceforge.net/projects/jobscheduler/files/JobScheduler.1.13/JobScheduler.1.13.2/jobscheduler_windows-x64_joe.1.13.2.zip/download
- 从以下位置安装 joc_windows.1.13.2.zip https://sourceforge.net/projects/jobscheduler/files/JobScheduler.1.13/JobScheduler.1.13.2/joc_windows.1.13.2.zip/download
使用管理权限打开命令提示符,运行以下命令-
"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。一切就绪。