本人电脑系统win11,前段时间在实习做项目的时候,无意中发现在代码中调用System.getProperty("os.name");的时候,获取不到win11系统的信息,调用后保存在数据库中的值竟然是win10,如下图:
这不禁让我起了好奇心,为什么在调用该方法的时候会出现此类现象呢,难道说win11只是win10的换皮,以至于win11和win10的内核都一样吗,因为本人的操作系统学的平平无奇,所以只能先从代码端开始考虑。
首先我使用jdk1.8去调用发现获取的系统是win10,但是用jdk17调用起来获取到的信息就是win11,如下图。 查看getProperty的java底层源码根本看不到太多有用的信息,感觉该方法应该不是使用的java语言去写的底层(可能是我技术能力不足的原因看不出来),所以在jdk1.8中如果想获取win11的相关信息,对于目前我的能力来说还是一个难题,我也尝试过使用其它库和工具来获取,但结果都是jdk1.8。
希望随着后续的深入学习可以搞清楚该问题的本质原因,也希望如果有大佬明白因素的话可以给我讲清楚,本帖就当一个记录先保存,哪天搞懂问题的原因后我会继续书写!