2016-11-19 4 views
1

Windowsレジストリから値を読み取ろうとしています。このコードは、Intellij Ideaで実行するとうまくいきます。com/sun/deploy/util/WinRegistry throw ClassNotFoundException Intellij Idea

public static String getInstallLocationValue() { 
    String value = WinRegistry.getString(
      WinRegistry.HKEY_LOCAL_MACHINE, 
      "SOFTWARE\\" + ApplicationConstants.APP_NAME + "\\", 
      "InstallLocation"); 
    System.out.println("Windows Distribution = " + value); 
    return value; 
} 

しかし、それは、私はjarファイルからそれを実行するとクラッシュする:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/deploy/util/WinRegistry at com.doos.utils.RegistryManager.getInstallLocationValue(RegistryManager.java:10) at com.doos.core.Main.main(Main.java:51) 
Caused by: java.lang.ClassNotFoundException: com.sun.deploy.util.WinRegistry 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 2 more 

あなたがこの問題を解決する方法を、任意のアイデアを持っていますか?

+0

部分解決策が見つかりました[こちら](http://stackoverflow.com/questions/62289/read-write-to-windows-registry-using-java/6163701#6163701) –

+0

Better help [JNA](https ://github.com/java-native-access/jna)Advapi32Util –

答えて

0

私の代わりに私がJNAライブラリからAdvapi32Utilクラスを使用WinRegistry、との問題を解決しませんでした。