8

有没有办法使用 java 找到操作系统名称?

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

System.getProperty("os.name")

我需要检测以下格式

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

对不起我的英语不好 :-( !!!

任何的想法 ?

4

4 回答 4

11

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

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

就您而言,我相信您正在寻找该os.version物业。的javadocs包含System.getProperties()您可以检索的属性的完整列表。

编辑

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

Linux
amd64
2.6.38-8-generic

找到这篇文章后,似乎没有可靠的方法可以通过 Java API 找到您正在运行的 Linux 发行版。

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

  • cat /etc/*-release
于 2012-04-30T12:28:33.193 回答
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
于 2012-04-30T12:29:34.907 回答
1

您可以查询一些系统属性。查看教程以了解详细信息。这 3 个部分或全部的组合应该可以帮助您:

System.getProperty("os.arch")
System.getProperty("os.name")
System.getProperty("os.version")
于 2012-04-30T12:30:41.513 回答
-1

看看: http ://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperties%28%29

属性:'os.name'

于 2012-04-30T12:27:54.133 回答