338 votes

lecture/écriture dans le registre Windows à l'aide de Java

Comment est-il possible de lire/écrire dans le registre de Windows en utilisant java ?

4voto

Vinko Vrsalovic Points 116138

L'approche de l'API Préférences ne vous donne pas accès à toutes les branches du registre. En fait, elle ne vous donne accès qu'à l'endroit où l'API des préférences stocke ses, eh bien, préférences. Il ne s'agit pas d'une API générique de gestion du registre, comme l'API .NET

Pour lire/écrire chaque clé, je suppose que JNI ou un outil externe serait l'approche à adopter, comme le montre Mark.

3voto

Peter Smith Points 513

Vous pouvez essayer WinRun4J . Il s'agit d'un lanceur et d'un hôte de services java pour Windows, mais il fournit également une bibliothèque pour accéder au registre.

(en fait, je travaille sur ce projet, alors faites-moi savoir si vous avez des questions).

3voto

kevinarpe Points 2902

Ma précédente modification de la réponse de @David a été rejetée. Voici quelques informations utiles à ce sujet.

Cette "magie" fonctionne parce que Sun implémente le système Preferences pour Windows dans le cadre du JDK, mais elle est paquet privé . Certaines parties de l'implémentation utilisent JNI.

L'implémentation est sélectionnée au moment de l'exécution à l'aide d'une méthode d'usine ici : http://grepcode.com/file/repository.grepcode.com/java/Root/jdk/openjdk/7-b147/java/util/prefs/Preferences.java#Preferences.0factory

La vraie question : Pourquoi OpenJDK n'expose pas cette API au public ?

2voto

Ryan Points 106

Encore une autre bibliothèque...

https://code.google.com/p/java-registry/

Celui-ci lance reg.exe sous le manteau, en lisant/écrivant dans les fichiers temporaires. Je n'ai pas fini par l'utiliser, mais elle semble être une implémentation assez complète. Si je l'utilisais, je pourrais m'y plonger et ajouter une meilleure gestion des processus enfants.

0voto

La démo de WinPack a le Registry Viewer est implémenté à titre d'exemple.

Vérifiez à http://www.jniwrapper.com/winpack_features.jsp#registry

BTW, WinPack a été déplacé à l'adresse suivante :

http://www.teamdev.com/jniwrapper/winpack/

comment écrire des services Windows en java

WinPack prend également en charge la gestion des services Windows : http://www.teamdev.com/jniwrapper/winpack/#services

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X