我正在尝试使用OSHI获取cpu温度、电压和风扇速度,但结果显示这些信息不可用。下面是我的代码:
public static void main(String... args) {
SystemInfo si = new SystemInfo();
HardwareAbstractionLayer hal = si.getHardware();
Sensors sensors = hal.getSensors();
System.out.println(sensors.toString());
}这是在Windows 10上的输出:
CPU Temperature=0.0°C, Fan Speeds=[0, 0, 0], CPU Voltage=0.0以下是传感器界面:
public interface Sensors {
/**
* CPU Temperature
*
* @return CPU Temperature in degrees Celsius if available, 0 otherwise.
*/
double getCpuTemperature();
/**
* Fan speeds
*
* @return Speed in rpm for all fans. May return empty array if no fans detected
* or 0 fan speed if unable to measure fan speed.
*/
int[] getFanSpeeds();
/**
* CPU Voltage
*
* @return CPU Voltage in Volts if available, 0 otherwise.
*/
double getCpuVoltage();
}如果信息不可用,接口中的三个函数将返回0。
我的问题是,你能提供这些信息吗?如果可以,如何提供?
发布于 2020-03-03 20:47:28
我找到了一个解释:
Windows传感器(温度、风扇、电压)读数取自Microsoft的Windows Management Instrumentation ( WMI ) API;但是,大多数硬件制造商不会将这些读数发布到WMI。如果无法通过Microsoft API获得值,Oshi将尝试检索Open Hardware Monitor发布的值(如果它正在运行)。使用coretemp在FreeBSD上仅检测到温度传感器。
我试着用欧姆运行它,它在温度下工作,这对我来说已经足够了。请让我知道,如果你找到了其他两个变量的方法。
https://stackoverflow.com/questions/60507183
复制相似问题