如何使用Java获取Ubuntu版本?

如何使用Java获取Ubuntu版本?,java,ubuntu,Java,Ubuntu,我正在尝试使用Java获取Ubuntu版本,但有一个问题 当使用System.getProperty(“os.version”)时,返回内核版本 如何获得“14.04”等发行版 您可以在Java类中使用 Runtime.getRuntime().exec("lsb_release -a"); 并解析输出 编辑:清除解决方案 String[] args = new String[] {"/bin/bash", "-c", "lsb_release -r", "with", "args"}; P

我正在尝试使用Java获取Ubuntu版本,但有一个问题

当使用
System.getProperty(“os.version”)
时,返回内核版本

  • 如何获得“14.04”等发行版

您可以在Java类中使用

Runtime.getRuntime().exec("lsb_release -a");
并解析输出

编辑:清除解决方案

String[] args = new String[] {"/bin/bash", "-c", "lsb_release -r", "with", "args"};
Process proc = new ProcessBuilder(args).start();

注意:您需要使用lsb_release-r来获取版本。

Java在其操作系统文档中定义了以下系统属性,但没有一个适用于您的情况

“os.arch”-操作系统架构
“os.name”-操作系统名称
“操作系统版本”-操作系统版本

您必须使用如下java代码执行
lsb_release-a
命令

 Runtime.getRuntime().exec("lsb_release -a");
这将为您提供如下输出

没有可用的LSB模块

分销商ID:LinuxMint

描述:Linux Mint 18.1 Serena

发行:18.1

姓名:瑟琳娜


您可以对其进行解析并获得输出。

以下是实现您的目标的一个片段:

String version = (new BufferedReader(new InputStreamReader((new ProcessBuilder("lsb_release", "-rs")).start().getInputStream()))).readLine();
System.out.println(version);
这两行显示如下内容:

14.04

在java
os.name、os.arch、os.version中可用。下面的答案可能有助于youFSG lsb_发行版v2.0+打印某些lsb(Linux标准库)和发行版信息,如发行版。它应该出现在Ubuntu上。