我想知道是否有办法确定我在JVM中运行的Linux版本(即区分RHEL4,RHEL5)。我只是想找到一种区分操作系统及其版本的一致方法。
答案 0 :(得分:8)
JVM通过
为您提供有关操作系统的一些基本信息System.getProperty()
"os.name" // OS name
"os.arch" // OS architecture
"os.version" // OS version
据我所知,它不提供特定于分发的信息。 至少对于debian发行版,此信息存储在名为
的文件中的/ etc /问题
因此,它可能有助于阅读不同发行版存储此信息的任何文件。
答案 1 :(得分:4)
我不相信您可以查看任何可以提供该信息的系统属性。如何执行cat /proc/version
并解析输出。
答案 2 :(得分:1)
您正在运行哪个版本的发行版或哪个版本的内核?我知道Red Hat曾经将他们的版本号保存在名为/ etc / redhat-release的文件中。我不确定其他的发行版。您可以通过对“uname -r”进行系统调用来获取内核版本
答案 3 :(得分:1)
/prov/version
是一个好的开始。 /etc/issue
也可能有所帮助。
答案 4 :(得分:1)
如果System.getProperty(x)其中x是“os.name”,“os.arch”,“os.version”对你不起作用,那么你可能不得不求助于按照建议运行本机进程(cat / proc / version,或lsb_release等)
答案 5 :(得分:0)
您还可以查看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