从java中查找linux发行版的名称

时间:2010-12-02 11:26:26

标签: java linux linux-distro

我们正在java中编写一个小型库,需要从底层系统收集信息。我们能够从java中的系统属性中读取大部分内容,但是我们似乎无法找到在linux上运行时提取发行版名称的正确方法。电话

System.getProperty("os.name");

返回“Linux”(我们也收集)但我们正在寻找一种方法“Ubuntu”也是如此。我们在java中需要这个解决方案,并且不需要做一些/ etc / release解析

3 个答案:

答案 0 :(得分:9)

您可以尝试调用lsb_release -i,但这不能保证有效。

答案 1 :(得分:7)

为了可靠而准确地做到这一点是不可能的,我建议的最好的方法是取出'uname -a'的输出并使用它。

注意:这不是Java限制 - 根本没有识别分发的常用(和准确)方法。

答案 2 :(得分:4)

我通常使用以下命令:

cat /etc/issue

用Java读取这个文件应该很容易。问题是这个文件是否在每个(或至少大多数)Linux发行版上。我发现它在我需要它的任何地方,但它并不经常需要它。