GlassFish 中的 "java.version" 值比控制台上的值旧

Older "java.version" value in GlassFish than on console

操作系统:Ubuntu 12.04,GlassFish 版本:4.0.1 (build 10)

在 GlassFish servlet 中,我使用以下代码在 processRequest 中打印 Java 版本:

    out.println("<p>" + System.getProperty("java.version") + "</p>");
    out.println("<p>" + System.getProperty("java.home") + "</p>");
    out.println("<p>" + System.getProperty("java.vendor") + "</p>");

当我在网络浏览器中输入 servlet 地址时,输出是

1.7.0_65
/usr/lib/jvm/java-7-openjdk-amd64/jre
Oracle Corporation

但是如果我在控制台输入 java -version ,输出是

java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~precise1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)

我检查了已安装的 Java 版本,但系统只安装了一个 Java 版本

~# update-alternatives --config java
There is only one alternative in link group java: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Nothing to configure.

正如预期的那样,/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -version 也显示 java 版本“1.7.0_75”

所以安装的 Java 版本是 1.7.0_75 而 GlassFish 显示 1.7.0_65。为什么?

您是否尝试过重新启动 GlassFish?可能是升级 JRE 后服务器没有重启(因此旧版本可能还在内存中运行)。