Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JAVA中获取Windows 10内部版本_Java_Regex_Windows - Fatal编程技术网

如何在JAVA中获取Windows 10内部版本

如何在JAVA中获取Windows 10内部版本,java,regex,windows,Java,Regex,Windows,有没有一种简单的方法可以用JAVA获取Windows OS构建版本(如16299、15063等)? 目前我找到的唯一解决方案是运行外部进程并解析输出: Runtime runtime = Runtime.getRuntime(); Process process; BufferedReader bufferedReader; StringBuilder stringBuilder = new StringBuilder(); String stdOutLine

有没有一种简单的方法可以用JAVA获取Windows OS构建版本(如16299、15063等)?

目前我找到的唯一解决方案是运行外部进程并解析输出:

 Runtime runtime = Runtime.getRuntime();
    Process process;
    BufferedReader bufferedReader;
    StringBuilder stringBuilder = new StringBuilder();
    String stdOutLine = null;
    String windowsVersion = null;

    try {
        process = runtime.exec("cmd.exe /c ver");
        bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        while ((stdOutLine = bufferedReader.readLine()) != null) {
            stringBuilder.append(stdOutLine);
        }
    } catch (IOException ex) {
        throw new RuntimeException("Error while getting Windows version");
    }
    windowsVersion = Arrays.stream(stringBuilder.toString().split("\\."))
            .filter(s -> s.length() == 5 && s.matches("[0-9]+"))
            .findFirst()
            .get();

有没有其他更优雅的方法来获取字符串或提取所需的部分?谢谢。

由于Java是独立于平台的,它没有API来获取特定平台的信息。
然而,如果您知道如何在C中实现它,您可以使用