-1

レジストリを読み取るための作業コードがあります。私の問題は、レジストリを読んだ部分であり、答えに応じて最終的に何かを行うためにいくつかのifステートメントを比較したいと思います。値を確認しました。値としてWindows7Professionalが出力されますが、ifステートメントが一致しません。

私のレジストリコードはここからです

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();
            }                                              
        }  
    }
4

1 に答える 1

0

value.equals(os7)を使用する必要があります。Javaは文字列の==をサポートしていません。指定されていないオブジェクトIDのみをチェックします。

于 2012-08-08T18:58:24.470 に答える