有没有办法用java找到os名字?

时间:2012-04-30 12:26:07

标签: java

有没有办法用java找到os名字?

我试过下面的代码,但它会返回看起来像(Linux,windows ..)

System.getProperty("os.name")

我需要检测以下格式

  

Linux - “ubuntu,mandriva ..”,windows - “xp,vista ......”

抱歉我的英文:-( !!!

有什么想法吗?

4 个答案:

答案 0 :(得分:11)

您可以使用System.getProperty()获取以下属性:

  • os.name:操作系统名称
  • os.arch:操作系统架构
  • os.version:操作系统版本

在您的情况下,我相信您正在寻找os.version财产。 System.getProperties()的{​​{3}}包含您可以检索的完整属性列表。

修改

我刚刚在Linux Mint中对此进行了测试,看起来获取os.version属性实际上返回内核版本,而不是发行版:

Linux
amd64
2.6.38-8-generic

找到javadocs之后,似乎没有可靠的方法来查找您通过Java API运行的Linux发行版。

如果您知道自己在Linux中运行,则可以从Java运行以下系统命令之一,但您必须grep /解析分发:

  • cat /etc/*-release

答案 1 :(得分:5)

这可能会对您有所帮助:

System.out.println("\nName of the OS: " + System.getProperty("os.name"));
System.out.println("Version of the OS: " + System.getProperty("os.version"));
System.out.println("Architecture of the OS: " + System.getProperty("os.arch"));

编辑:这是它在Windows下返回的内容:

Name of the OS: Windows XP
Version of the OS: 5.1
Architecture of the OS: x86

答案 2 :(得分:1)

您可以查询一些系统属性。有关详细信息,请查看the tutorial。这些中的部分或全部3的组合可以帮助您:

System.getProperty("os.arch")
System.getProperty("os.name")
System.getProperty("os.version")

答案 3 :(得分:0)