Find name of linux distro from java

2019-05-02 00:18发布

We are writing a small library in java that needs to collect information from the underlying system. We are able to read most of the stuff from system properties in java, but we cannot seem to find the right way to extract the name of the distro when run on linux. The call

System.getProperty("os.name");

return "Linux" (which we also collect) but we are looking for a way to get e.g. "Ubuntu" as well. We need this solution in java and would like to not have to do some /etc/release parsing

3条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-05-02 00:45

You can try invoking lsb_release -i, but this is not guaranteed to work.

查看更多
一夜七次
3楼-- · 2019-05-02 00:51

To do this reliably and accurately is impossible, the best I can suggest is to take the output of 'uname -a' and use that.

Note: This is not a Java limitation - there is simply no common (and accurate) means of identifying a distribution.

查看更多
劫难
4楼-- · 2019-05-02 00:53

I usually use the following command:

cat /etc/issue

Reading this file in Java should be quite easy. The question is whether this file is on every (or at least majority) of Linux distributions. I found it everywhere I needed it, though, it was not needed very frequently.

查看更多
登录 后发表回答