繁体   English   中英

如何使用Java获得Ubuntu版本?

[英]How can I get Ubuntu version using Java?

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

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

  • 如何获得发行版本,例如“ 14.04”等?

您可以使用以下命令在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仅获取版本。

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

代号:serena

您可以解析它并获取输出。

以下是实现您的目标的代码段:

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

这两行显示如下内容:

14.04

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM