簡體   English   中英

從java檢測linux發行版

[英]Detecting the linux distribution from java

是否存在(最好是有效的,即沒有執行二進制文件並解析其輸出)檢測Java中的Linux發行版的方法? 據我所知, System提供的os.nameos.archos.version似乎沒有幫助。 對於典型的Ubuntu安裝,他們獲得以下值:

os.name

os.arch :Linux

os.version :3.19.0-28-通用

我需要的是它是基於debian的,redhat系列還是其他人。

我認為解析文件 Linux下的方法。 你當然可以只做一次。

在Linux上查找此類信息的正確文件是/etc/*-release ,在我的機器上提供以下輸出:

$ cat /etc/*-release                                                                                        
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

然后你可以解析ID_LIKE變量,它會給你所需的確切信息(我不能保證,但我想它總是在每個Linux發行版的第8行)。

您應該閱讀以下文件之一:

/etc/release
/etc/lsb-release

在最近的發行版中,您還會發現:

/etc/os-release

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM