如何通过java程序创建注册表项?

我想通过java程序创建注册表项,在启动时添加jar文件。

RegistryKey r=new RegistryKey(RootKey.HKEY_CURRENT_USER,"Software/Microsoft/Windows/CurrentVersion/Run"); r.createSubkey("sample"); 

但是我得到了错误:

 Exception in thread "main" java.lang.UnsatisfiedLinkError: ca.beq.util.win32.registry.RegistryKey.testInitialized()V at ca.beq.util.win32.registry.RegistryKey.testInitialized(Native Method) 

我怎样才能做到这一点?
谢谢

来自Javadoc :

如果Java虚拟机无法找到声明为native的方法的适当本机语言定义,则抛出此exception。

你不会在任何机会赢得64胜利吗?

如果没有, jreg的手册提到 :

jRegistryKey是一个JNI库。 要使用jRegistryKey ,需要以下文件:

  • jRegistryKey.jar
  • jRegistryKey.dll

jRegistryKey.jar是包含打包的Java™类文件的Java™Archive(JAR)文件,而jRegistryKey.dll是Windows®动态链接库(DLL),其中包含访问注册表所需的本机(C / C ++)代码。

jRegistryKey.jar必须包含在Java™虚拟机(JVM)可用的CLASSPATH ;

jRegistryKey.dll必须位于Windows®PATH环境变量中包含的目录中,否则将生成java.lang.UnsatisfiedLinkError

在库中添加JRegistryKey.jar
然后在我的项目中复制并粘贴JRegistryKey.dll

之后我运行相同的程序,成功创建了注册表项。

 RegistryKey r=new RegistryKey(RootKey.HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run"); RegistryValue v=new RegistryValue("name or the registrykey",ValueType.REG_SZ,"my jar file path"); r.setValue(v); 

在我的项目中添加jregistrykey.dll并不适合我。 我把这个块包含在我的课程中并且有效。

 static { System.load("path\\to\\jregistrykey.dll"); }