【问题标题】:How can I get Ubuntu version using Java?如何使用 Java 获得 Ubuntu 版本?
【发布时间】:2018-07-31 12:55:11
【问题描述】:

我正在尝试使用 Java 获取 Ubuntu 版本,但是出现了问题。

使用System.getProperty("os.version")时,返回内核版本。

  • 如何获得“14.04”等发布版本?

【问题讨论】:

  • 在 java 中 os.name,os.arch,os.version 可用。可能下面的答案可以帮助你

标签: java ubuntu


【解决方案1】:

您可以在 Java 类中运行任何终端命令(如 lsb_release -a

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 来获取版本。

【讨论】:

  • FSG lsb_release v2.0+ 打印某些 LSB(Linux 标准库)和分发信息,如发布版本。它应该出现在 Ubuntu 上。
【解决方案2】:

这里有一个sn-p来实现你的目标:

String version = (new BufferedReader(new InputStreamReader((new ProcessBuilder("lsb_release", "-rs")).start().getInputStream()))).readLine();
System.out.println(version);

这两行显示类似的内容:

14.04

【讨论】:

    【解决方案3】:

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

    "os.arch" -Operating system architecture "os.name" -Operating system name "os.version"-Operating system version

    你将不得不使用这样的 java 代码执行lsb_release -a 命令。

     Runtime.getRuntime().exec("lsb_release -a");
    

    这将为您提供如下输出。

    没有可用的 LSB 模块。

    分销商 ID:LinuxMint

    描述:Linux Mint 18.1 Serena

    发布:18.1

    歌名:瑟琳娜

    你可以解析它并得到输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-02
      • 2012-04-01
      • 2012-11-11
      • 1970-01-01
      • 2015-04-20
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多