【发布时间】:2011-05-19 01:53:00
【问题描述】:
我们正在用java编写一个需要从底层系统收集信息的小型库。我们能够从 java 中的系统属性中读取大部分内容,但是在 linux 上运行时,我们似乎无法找到提取发行版名称的正确方法。来电
System.getProperty("os.name");
返回“Linux”(我们也收集)但我们正在寻找一种方法来获取例如“Ubuntu”也是如此。我们在 java 中需要这个解决方案,并且不想做一些 /etc/release 解析
【问题讨论】:
-
您知道任何可以提供该信息的 API(我的意思是非 Java)吗?
-
嗯,不是真的。从我的谷歌搜索看来,做一些 cat /etc/*release 会给你一些信息,但不是很可靠。我真的希望你们中的一些人以前遇到过这个问题并解决了它......
-
这是特定于发行版的;我根本没有 /etc/*release (在 Debian 上,即使安装了 lsb* )。我查看了 lsb_release src(它只是一个 python 脚本),它解析了来自 apt 的大部分分发信息。比寻找 /etc/debian_version 更简单的方法(特定于 debian)(uname -a 也不可靠)
-
“我们正在用 java 编写一个小型库,需要从底层系统收集信息。” 我对这样的需求的最初反应是问“为什么是这种您的任何业务的信息?”。
-
@Stephen:这听起来有点居高临下,但你确实提出了一个很好的观点:询问原始问题,而不是该问题的感知解决方案!
标签: java linux linux-distro