JDK8 Window环境 如何获取CPU中 family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse 信息

想问一下 在JDK8版本 windows环境下 如何获取CPU 类似这样的信息
family 6 model 23 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, tsc

这种还得 window cmd里执行相关命令获取,java 可以执行 这些cmd的命令
举个获取CPU型号的例子:

    public static void main(String[] args) throws Exception {
        // 执行 cmd命令
        Process p = Runtime.getRuntime().exec("cmd /c wmic cpu get caption");
        BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }

其他的 命令可以参考这个
《使用wmic命令获得计算机硬件信息》
《手把手教你玩转wmic命令》

该回答引用ChatGPT4与博主@晓码自在合作编写:

在Windows环境下,你可以使用Java的com.sun.management.OperatingSystemMXBean类来获取CPU信息。

具体步骤如下:

  1. 获取OperatingSystemMXBean对象
java
OperatingSystemMXBean osBean = 
    ManagementFactory.getOperatingSystemMXBean();

  1. 调用osBean的getCpuFamily()方法获取CPU系列(family)
java
int cpuFamily = osBean.getCpuFamily();

  1. 调用osBean的getCpuModel()方法获取CPU型号(model)
java
int cpuModel = osBean.getCpuModel(); 

  1. 调用osBean的getCpuStepping()方法获取CPU步进(stepping)
java 
int cpuStepping = osBean.getCpuStepping();

  1. 调用osBean的getCpuInfo()方法获取CPU特征(cmov,cx8,fxsr,mmx,sse等)
java
String cpuInfo = osBean.getCpuInfo();

  1. 将获取的信息拼接输出
java
System.out.println("CPU: Family " + cpuFamily + " Model " + cpuModel + 
                    " Stepping " + cpuStepping);
System.out.println(cpuInfo);

输出结果如:

CPU: Family 6 Model 23 Stepping 10

cmov, cx8, fxsr, mmx, sse, sse2, ssse3

所以,要获取你提到的CPU信息,可以按照上述步骤,使用OperatingSystemMXBean类提供的方法获得family,model,stepping以及cpuInfo,然后输出并解析cpuInfo字符串即可。