一位客户使用特定的车库应用程序。几天前它开始抱怨。屏幕上的错误显示未安装 Java 7 32 位。第三方(软件 devop)也指出了 Java 问题。客户使用在 3 个 RD 服务器之间进行负载平衡的远程桌面网关。其中2个没有这个问题。没有安装 Java 7 32 位。所以我开始怀疑错误信息的可信度。
一些信息:重要 => RD2 是问题服务器
RD-01
C:\Windows\system32>java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
RD-02
C:\Windows\System32>java -version
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment Corretto-11.0.11.9.1 (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.11.9.1 (build 11.0.11+9-LTS, mixed mode)
RD-03
C:\Windows\system32>java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
我清楚地看到了 RD-02 上的差异。到目前为止采取的行动但没有帮助:
将默认程序中 .jar 文件的行为更改为 Java(TM) Platform SE Binary(就像在 RD-01 和 RD-03 上一样)。
在系统 => 应用和功能的已安装应用程序列表中,我有以下内容:
RD-01
RD-02
RD-03
这让我很困惑,因为 RD-01 和 RD-02 完全一样。cmd 输出的 openJDK 软件从哪里来的?
下一步我要研究他们使用的软件,它叫做 OpenWebStart。它似乎是一种 Java 软件。RD-01 和 RD-03 运行的是 OpenWebStart 1.3.0 版,而 RD-02 运行的是 1.4.0 版。
谢谢您的帮助。
答案1
就像 gronostaj 建议的那样,寻找路径将我引向正确的方向。使用在 Google 搜索中找到的命令,我找到了提供 RD-02 输出的软件。
C:\Windows\System32>for %i in (javac.exe) do @echo. %~$PATH:i
C:\Program Files\Amazon Corretto\jdk11.0.11_9\bin\javac.exe
我卸载了 RD-01 和 RD-03 上未安装的 Amazon Corretto。可能是有人将它与其他软件一起安装了。
之后,命令 java -version 返回了类似 RD-01 和 RD-03 的输出。软件问题也得到了解决。
C:\Windows\System32>java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)