我不习惯必须考虑 i18n 的东西。我为 Java 程序编写了这个方法:
boolean isWindows()
{
return System.getProperty("os.name").toLowerCase().contains("windows");
}
我需要此检查以便为特定于 Windows 的 JVM 错误提供解决方法。
我突然想到这个程序可能需要在没有选择英语的系统上运行,这会导致这行代码中断吗?
也许我应该澄清一下,我问这个问题是希望看到人们可以挖掘出什么证据(所以我对将这段代码公开发表感觉更好)。带有文档链接、实验证据或某种支持性理由的答案会得到优先考虑。
最佳答案
直截了当,您想知道操作系统名称(由 os.name
属性返回)是否可以国际化并包含其他语言的 windows 一词?
我会说 99% 的人不会,因为 Microsoft Windows 是一个商标(或其他什么,IANAL)并且可能没有翻译并保持原样.然而,我looked up Apache Commons Lang 中 IS_OS_WINDOWS
属性的定义 SystemUtils类(class)。删除所有间接层后,一切都归结为:
System.getProperty("os.name").startsWith("Windows");
我并不是说这是一个证明,但我倾向于相信这样完善的图书馆。
关于java - java.lang.System.properties 的内容是否随区域设置而变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767933/