代码之家  ›  专栏  ›  技术社区  ›  David Arno

为什么Vista上的Java报告它在XP上?

  •  5
  • David Arno  · 技术社区  · 16 年前

    我偶然发现了一些真正令人费解的事情 System.getProperty("os.name") a Java bug on the matter the Java 5 release notes (搜索“os.name”),早期的Vista“longhorn”版本在Java中有一个bug,应该在v5版本10中修复。

    System.getProperty(“os.name”) 返回“Windows XP”。进一步的 System.getProperty("os.version") 返回“5.1”。不过,我在谷歌上找不到任何与这个问题相关的信息。这让我怀疑我的Vista设置是否有些奇怪。我尝试从测试C程序调用GetVersionEx()API函数,它返回主版本6,次版本0(正如我在Vista安装中所期望的那样)。

    有没有其他人遇到过这个问题,知道修复方法,或者对我如何在不使用JNI的情况下解决它有什么建议?

    2 回复  |  直到 15 年前
        1
  •  10
  •   Martin v. Löwis    16 年前

    可能是Java在XP兼容模式下运行。在这种情况下,Vista将伪造windows版本号,使Java相信它在XP上运行。检查可执行文件的兼容性选项卡。

        2
  •  0
  •   nsayer    16 年前

    windows 2000的实际windows版本号为5.0。WindowsXP是5.1。Vista应该是6.0,所以您的测试程序运行正常。在我看来,Java肯定是弄错了。

    推荐文章