Modifier un fichier XML dans un fichier jar avec Java
Question
Je suis actuellement chargé de mettre à jour un fichier XML (persistance.xml) dans un fichier jar sur le site d'un client. Je peux bien sûr décompresser le fichier, mettre à jour le fichier XML, puis rejar le fichier pour le redéploiement. Je voudrais taper ces opérations de ligne de commande dans une application Swing pour que la personne qui la fait ne soit pas obligée de passer à la ligne de commande. Des idées sur une façon de faire cela par programmation?
La solution
L'API Java a des classes pour manipuler des fichiers JAR.
Autres conseils
Bien sûr:
File tmp = new File ("tmp");
tmp.mkdirs();
Process unjar = new ProcessBuilder ("jar", "-xf", "myjar.jar", tmp.getName ()).start();
unjar.waitFor();
// TODO read and update persistence.xml
Process jar = new ProcessBuilder ("jar", "-cf", "myjar.jar", tmp.getName()).start();
jar.waitFor();
Vous pouvez utiliser le ZipFile de Java. et ZipEntry classes pour lire le contenu d'un fichier JAR, puis utilisez ZipOutputStream pour en créer un nouveau.