我有一个用于阅读注册表的工作代码。我的问题是我阅读注册表的部分,我想比较一些if语句,最终根据答案做一些事情。我检查了该值,它输出Windows 7 Professional作为值,我的if语句不同意。
我的注册表代码来自here
public class Regtest {
public static void main(String[] args) {
String value = null;
String os7 = "Windows 7 Professional";
try {
value = Registry.readString (
Registry.HKEY_LOCAL_MACHINE, //HKEY
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", //Key
"ProductName");
if(value == os7 ){
System.out.println("Windows Distribution = " + value);
}else{
if(value != os7 ){
System.out.println("Windows Distribution = Wrong OS");
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
您需要使用value.equals(os7)。 Java不支持== for Strings。它只检查不是给定的对象标识。