cpu溫度的數值由主板驅動供給windows,目前的現狀是許多PC兼容機不提供或沒安裝“專用的主板驅動”(比如大量的ghost集成裝機),連win都沒法獲知溫度,更別提win之上的Java。
在專用主板驅動安裝正常的win-java系統下可以:
import java.util.Scanner;
public class Test {
static public void main(String 土數[]) {
try {
final String cmd="wmic /namespace:\\\\root\\WMI path MSAcpi_ThermalZoneTemperature get CurrentTemperature";
Process p = Runtime.getRuntime().exec(cmd);
p.getOutputStream().close();//這句不寫就不執行
Scanner sc=new Scanner(p.getInputStream());
sc.next();
float t=(sc.nextInt()-2732f)/10f;
sc.close();
System.out.println("當前CPU溫度:"+t);
p.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
==
當前CPU溫度:41.0
linux下同樣依賴“主板驅動”, 數據提供給/dev/sensor