I want to create registry key through java program to add the jar file in the start up.
RegistryKey r=new RegistryKey(RootKey.HKEY_CURRENT_USER,\"Software/Mi
Add the JRegistryKey.jar in the library.
Then copy and paste JRegistryKey.dll in my project.
After that I run the same program ,The registry key is created successfully.
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);
From the Javadoc:
Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.
You wouldn't be on a win 64 OS by any chance?
If not, the manual for jreg mentions:
jRegistryKeyis aJNIlibrary. To usejRegistryKey, the following files are required:
jRegistryKey.jarjRegistryKey.dlljRegistryKey.jar is the Java™ Archive (JAR) file containing the packaged Java™ class files, whereas jRegistryKey.dll is a Windows® dyanmically linked library (DLL) that contains the native (C/C++) code required to access the registry.
jRegistryKey.jarmust be included in theCLASSPATHavailable to the Java™ Virtual Machine (JVM);
jRegistryKey.dllmust be located in a directory included in the Windows® PATH environment variable orjava.lang.UnsatisfiedLinkError's will be generated
Adding jregistrykey.dll in my project didn't work for me. I included this block in my class and it worked.
static {
System.load("path\\to\\jregistrykey.dll");
}