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

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

System.getProperty("os.name"); 

返回“Linux”(我们也收集),但我们正在寻找一种方法来获得例如“Ubuntu”。 我们在java中需要这个解决scheme,并且不想做一些/ etc / releaseparsing

Solutions Collecting From Web of "从java中查找linux发行版的名字"

要做到这一点是可靠和准确的是不可能的,我可以建议的最好的是采取'uname -a'的输出,并使用它。

注意:这不是Java限制 – 没有共同的(和准确的)识别分布的方法。

你可以尝试调用lsb_release -i ,但是这不能保证工作。

我通常使用下面的命令:

猫/ etc /问题

用Java读这个文件应该很容易。 问题是这个文件是否在每个(或者至少大部分)Linux发行版上。 我发现它到处都是我需要的,但是这并不是非常频繁的需要。