繁体   English   中英

使用javaw.exe时,System.getProperty(“ os.name”)在Windows Vista上返回“ Windows XP”,但是java.exe可以工作

[英]System.getProperty(“os.name”) returns “Windows XP” on a Windows Vista when using javaw.exe, but java.exe works

我有以下问题:

我想通过Windows Vista计算机上的System.getProperty("os.name")System.getProperty("os.version")获得操作系统名称。

我已经检查了Java可执行文件的兼容模式设置。

Java报告如下:

C:\\ Program Files \\ Java \\ jre6 \\ bin \\ java.exe-无兼容模式-> Windows Vista / 6.0(确定)
C:\\ Program Files \\ Java \\ jre6 \\ bin \\ java.exe-兼容模式“ Windows XP”-> Windows XP / 5.1(确定)
C:\\ Program Files \\ Java \\ jre6 \\ bin \\ javaw.exe-无兼容模式-> Windows XP / 5.1(WRONG)
C:\\ Program Files \\ Java \\ jre6 \\ bin \\ javaw.exe-兼容模式“ Windows XP”-> Windows XP / 5.1(确定)

我在32位Vista上使用Java 1.6.0_34(x86)。

有人知道这可能是什么原因吗?

您很有可能在兼容模式下运行Java。 这可能是因为您决定手动执行此操作(例如,通过右键单击Java>属性>兼容模式),或者是因为Windows出于应用程序兼容的原因而决定使用Java。

应用兼容版本的谎言通常是由于逻辑中断而在较新版本的Windows上无法正常运行的程序的原因,例如:

if(Windows.Version != WindowsXP)
  abort("Windows 2000 is too old!");

在Windows Vista上,此逻辑失败,从而使Java停止工作。 因此,Windows依靠它来保持其正常运行。 当稍后在System.getProperty(“ os.name”)中说“我是哪个版本”时,会因此弄错。

要解决此问题,请检查是否已安装最新版本的Java。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM