我们正在java中编写一个小型库,需要从底层系统收集信息。我们能够从java中的系统属性中读取大部分内容,但是我们似乎无法找到在linux上运行时提取发行版名称的正确方法。电话
System.getProperty("os.name");
返回“Linux”(我们也收集)但我们正在寻找一种方法“Ubuntu”也是如此。我们在java中需要这个解决方案,并且不需要做一些/ etc / release解析
答案 0 :(得分:9)
您可以尝试调用lsb_release -i
,但这不能保证有效。
答案 1 :(得分:7)
为了可靠而准确地做到这一点是不可能的,我建议的最好的方法是取出'uname -a'的输出并使用它。
注意:这不是Java限制 - 根本没有识别分发的常用(和准确)方法。
答案 2 :(得分:4)
我通常使用以下命令:
cat /etc/issue
用Java读取这个文件应该很容易。问题是这个文件是否在每个(或至少大多数)Linux发行版上。我发现它在我需要它的任何地方,但它并不经常需要它。