从java中确定linux版本

我想知道是否有办法从JVM中确定我正在运行哪个版本的Linux(即区分RHEL4,RHEL5)。 我只是寻找一个一致的方式来区分操作系统和他们的版本。

你也可以看看lsb_release

lsb_release -a 

会给你类似的东西:

 cyril@merlin:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 8.10 Release: 8.10 Codename: intrepid 

JVM通过提供有关操作系统的一些基本信息

 System.getProperty() "os.name" // OS name "os.arch" // OS architecture "os.version" // OS version 

据我所知,它不提供分配的具体信息。 至少在debian发行版中,这个信息存储在一个名为

在/ etc /问题

所以它可以帮助读取不同发行版存储这些信息的任何文件。

我不相信有任何系统属性,你可以看看会给你的信息。 如何执行一个cat /proc/version和解析输出。

你正在运行哪个版本的发行版或哪个版本的内核? 我知道红帽曾经把他们的版本号保存在一个名为/ etc / redhat-release的文件中。 我不确定其他发行版。 您可以通过在“uname -r”上执行系统调用来获取内核版本

/prov/version是一个好的开始。 /etc/issue也可能有帮助。

如果System.getProperty(x)其中x是“os.name”,“os.arch”,“os.version”不适用于你,那么你可能不得不求助于按照建议运行本地进程(cat / proc / version或者lsb_release等)