2010-04-13 4 views
4

Я хочу создать ключ реестра через java-программу, чтобы добавить файл jar в начало.Как создать ключ реестра через java-программу?

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) 

Как я могу это сделать?
Благодаря

+0

эй работает с 65-битной ОС? если нет, то есть ли альтернатива? – Johnydep

+0

Кто-то разместил ссылку на 64-битную сборку DLL по адресу http://sourceforge.net/p/jregistrykey/support-requests/17/, хотя я не могу заставить ее работать вне руки - все равно получите вышеизложенное исключение , Если кто-нибудь еще сможет заставить его работать, дайте мне знать! –

ответ

4

Добавьте 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); 
7

От the Javadoc:

Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

Вы не были бы на победу OS случайно?

Если нет, то manual for jreg mentions:

jRegistryKey is a JNI library. To use jRegistryKey , the following files are required:

  • jRegistryKey.jar
  • jRegistryKey.dll

jRegistryKey.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.jar must be included in the CLASSPATH available to the Java™ Virtual Machine (JVM);

jRegistryKey.dll must be located in a directory included in the Windows® PATH environment variable or java.lang.UnsatisfiedLinkError 's will be generated

+0

Я добавил JRegistryKey.jar.But Где я должен добавить JRegistryKey.dll? – Arivu2020

+0

@ Arivu2020: в любом месте пути, на который ссылается ваша переменная среды% PATH%, или вы можете добавить путь к этой DLL к вашему Windows% PATH%. См. Http://vlaurie.com/computers2/Articles/environment.htm или http://www.computerhope.com/issues/ch000549.htm или http://www.brightrev.com/how-to/windows/35 -add-a-utilities-directory-to-your-pc.html? start = 1 – VonC

+0

просто добавить DLL-файл в мой проект для запуска. Большое спасибо VonC – Arivu2020

1

Добавление jregistrykey.dll в мой проект не сработало для меня. Я включил этот блок в свой класс, и он сработал.

static { 
    System.load("path\\to\\jregistrykey.dll"); 
} 
Смежные вопросы