请查看以下代码
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));}
使用此代码段,我可以获得所需的所有信息,以及大量的NO-NEED信息。说实话,我需要的是处理器数量和处理器标识符。这两个存储在Windows系统中的环境变量PROCESSOR_IDENTIFIER和NUMBER_OF_PROCESSORS中。
我无法调用此代码
System.out.println("Processor Data: "+ System.getenv("PROCESSOR_IDENTIFIER"));
System.out.println("Number of Processors: "+System.getenv("NUMBER_OF_PROCESSORS"));
原因是,oracle它自己说环境变量因系统而异。这意味着,USERNAME windows环境变量是UNIX系统中的LOGIN或用户名。像这样,它可能在其他系统中有其他各种名称。
但是,我真的不需要循环提供给我的所有信息。我只需要那两个。我正在考虑使用如下代码。
if("os.name" == "Windows")
{
System.out.println("Processor Data: "+ System.getenv("PROCESSOR_IDENTIFIER"));
}
然而,在这种情况下,我不知道需要检查多少系统(我的意思是,这些环境变量是否从操作系统更改为操作系统或系统更改为系统?如果我更清楚,这些变量是否是在Linux内核中也是如此,或者在Ubuntu,Fedora,Red Hat等上进行更改?)
我不知道如何获得我需要的唯一两个数据,省略其余数据。请帮忙。我非常高兴看到代码有所帮助。谢谢
答案 0 :(得分:2)
你能试试Runtime.getRuntime().availableProcessors();
吗?
答案 1 :(得分:0)
CPU /核心数:Finding Number of Cores in Java 不要认为可以通过方便的跨平台方式获得CPU类型。