我偶然发现了一些令人费解的事情System.getProperty("os.name")
.根据关于此事的Java漏洞和Java 5发行说明(搜索"os.name"),Java中存在一个早期"longhorn"版本的Vista中的错误,应该已在v5版本10中修复.
但是在我的Vista SP1盒子上 - 使用v5版本15和v6版本6 - System.getProperty("os.name")
返回"Windows XP".进一步System.getProperty("os.version")
返回"5.1".但是,我无法通过Google找到与此问题相关的任何内容.这让我想知道我的Vista设置是否有些奇怪.我试过从测试C程序调用GetVersionEx()API函数,它返回主要版本6,次要0(正如我期望的Vista安装).
有没有其他人遇到这个问题,知道修复或有任何建议我如何解决它而不使用JNI?
可能是Java在XP兼容模式下运行.在这种情况下,Vista将伪造Windows版本号,使Java相信它在XP上运行.检查可执行文件的兼容性选项卡.