代码之家  ›  专栏  ›  技术社区  ›  MBaev

如何使用Java获得Ubuntu版本?

  •  2
  • MBaev  · 技术社区  · 6 年前

    我试着用Java来获得Ubuntu版本,但是有一个问题。

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

    • 我怎样才能得到像“14.04”这样的版本?
    3 回复  |  直到 6 年前
        1
  •  3
  •   MBaev    6 年前

    您可以运行任何终端命令(如 lsb_release -a )在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来获取版本。

        2
  •  0
  •   AB D CHAMP    6 年前

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

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

    你必须执行 lsb_release -a 使用类似java代码的命令。

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

    这将提供如下输出。

    没有可用的LSB模块。

    分发服务器ID:LinuxMint

    描述:Linux Mint 18.1 Serena

    版本:18.1

    奥德纳:瑟琳娜

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

        3
  •  0
  •   Alexandre Fenyo    6 年前

    以下是实现目标的一小段:

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

    这两行显示类似的内容:

    14.04