将注册表比较值读取到if语句

时间:2012-08-08 18:49:25

标签: java registry

我有一个用于阅读注册表的工作代码。我的问题是我阅读注册表的部分,我想比较一些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();
            }                                              
        }  
    }

1 个答案:

答案 0 :(得分:0)

您需要使用value.equals(os7)。 Java不支持== for Strings。它只检查不是给定的对象标识。