Comment éditer un fichier de propriétés (comme application.properties
) à l'intérieur d'un fichier jar existant sur un serveur Linux distant.
Imaginez que le pot se trouve dans /home/user/my-spring-boot.jar
et que je souhaite changer le nom d'utilisateur à l'intérieur de application.propertires
à partir de
username=foo
à
username=bar
Comment ouvrir le fichier et changer la propriété?
Un fichier .jar
est simplement un fichier .Zip
avec une extension différente, et vim
peut éditer directement les fichiers Zip et leur contenu! Simplement vim
votre .jar
, utilisez le navigateur de fichiers pour trouver votre fichier de propriétés et le modifier. vim
maintiendra le zip avec vos modifications.
Voir ici pour plus de détails.
La route possible pourrait être de copier le fichier jar dans un fichier Zip, de l'extraire, de modifier vos propriétés, de le compresser en Zip et de le renommer en jar.
cp myJar.jar myJar.Zip
unzip myJar.Zip
vim myProperties.properties (doing the change here)
Zip allMyFiles into myJar.Zip
cp myJar.Zip myModifiedJar.jar
Vous pouvez le faire avec emacs
(après avoir copié votre fichier pour la sauvegarde):
$ cp /home/user/bigExecutableJar.jar /home/user/bigExecutableJar.jar.bak
$ emacs /home/user/bigExecutableJar.jar
C-s
pour faire une recherche si nécessaire. RET
.C-x C-s
. C-x C-c
.La modification d'un artefact JAR existant n'est pas une bonne idée. Spring Boot vous permet de remplacer facilement les propriétés fournies avec des valeurs externes de plusieurs manières.
Par exemple, vous pouvez placer un fichier application.properties
à côté du fichier JAR avec les valeurs que vous souhaitez remplacer. Vous n'avez même pas besoin de copier le fichier de propriétés complet, uniquement les propriétés que vous souhaitez modifier, car il reprend toujours les valeurs par défaut fournies.
Les détails sont documentés ici:
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Utiliser emacs pour modifier du contenu sur un fichier jar
emacs jarfile
Après avoir ouvert le fichier jar, vous pouvez parcourir les dossiers et les fichiers. Recherchez le fichier jdbc.properties et modifiez-le. Enregistrez ensuite les modifications avec c-x c-s.
Remarque: est-il nécessaire d’installer Zip et décompresser
Vous pouvez décompresser les archives jar
avec la commande jar xf bigExecutableJar.jar
. Si vous le pouvez, je suggère d'installer atool
car il offre une meilleure ligne de commande pour compresser/décompresser les archives.
Sauf si vous savez manipuler vi
, utilisez nano
en tant qu'éditeur. mc
est également installé sur certains systèmes. Il s'agit d'un explorateur de fichiers basé sur une console doté d'un éditeur intégré.
Après avoir modifié le fichier, vous pouvez à nouveau compresser l’archive en utilisant jar cf bigExecutableJar-new.jar -C .
(ou atool --add
).
Si vous voulez vraiment/devez utiliser jar
, je vous suggère d’essayer d’abord la commande dans un nouveau répertoire car il ne se comporte parfois pas comme prévu. Ne l'utilisez jamais sur le fichier d'origine!