Cómo editar el contenido de una aplicación.propiedades o aplicación.archivo yml dentro de un jar existente en un servidor Linux remoto
Cómo editar un archivo de propiedades (como application.properties
) dentro de un archivo jar existente en un servidor Linux remoto.
Imagine que el frasco se encuentra en /home/user/my-spring-boot.jar
y me gusta cambiar el nombre de usuario dentro de application.propertires
de
username=foo
A
username=bar
Cómo abrir el archivo y cambiar la propiedad?
7 answers
Un archivo .jar
es simplemente un archivo .zip
con una extensión diferente, y vim
puede editar archivos zip y su contenido directamente! Simplemente vim
su .jar
, use el navegador de archivos para encontrar su archivo de propiedades y cambiarlo. vim
mantendrá el zip con tus ediciones.
Ver aquí para más detalles.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 14:55:46
La ruta posible podría ser copiar el jar en un archivo zip, extraer, cambiar sus propiedades, comprimir a zip y cambiar el nombre a 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 14:53:43
Puede hacerlo con emacs
(después de haber copiado su archivo para hacer una copia de seguridad):
$ cp /home/user/bigExecutableJar.jar /home/user/bigExecutableJar.jar.bak
$ emacs /home/user/bigExecutableJar.jar
- Si es grande, le preguntará si realmente desea abrir el archivo.
- Luego puede buscar el archivo que desea modificar en el búfer que lista todos los archivos en el jar; use
C-s
para hacer una búsqueda si es necesario. - Abra el archivo seleccionándolo y presione
RET
. - Haga sus cambios y guarde con
C-x C-s
. - Finalmente cierra Emacs con
C-x C-c
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 14:58:48
Utilice emacs para editar contenido en el archivo jar
emacs jarfile
Después de abrir el jar, puede explorar carpetas y archivos. Busca en el JDBC.propiedades y editarlo. Luego guarde los cambios con c-x c-s.
Nota: Es necesario instalar zip y descomprimir
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 14:57:58
Cambiar un artefacto JAR existente no es una buena idea. En su lugar, Spring Boot le permite reemplazar fácilmente las propiedades incluidas con valores externos de varias maneras.
Por ejemplo, puede colocar un archivo application.properties
junto al JAR con los valores que desea sobrescribir. Ni siquiera necesita copiar todo el archivo de propiedades allí, solo las propiedades que desea cambiar, porque todavía vuelve a los valores predeterminados incluidos.
Los detalles están documentados aquí:
Https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-04 18:34:08
Puede desempaquetar los archivos jar
con el comando jar xf bigExecutableJar.jar
. Si puede, le sugiero que instale atool
porque ofrece una mejor línea de comandos para empaquetar/desempaquetar archivos.
A Menos que sepa cómo manejar vi
, use nano
como editor. Algunos sistemas también tienen instalado mc
que es un explorador de archivos basado en consola que tiene un editor incorporado.
Después de cambiar el archivo, puede empaquetar el archivo nuevamente usando jar cf bigExecutableJar-new.jar -C .
(o atool --add
)
Si realmente quieres / necesitas usar jar
, te sugiero que pruebe el comando en un directorio nuevo primero porque a veces no se comporta como espera. ¡Nunca lo use en el archivo original!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 14:56:36
sed -i "s/\(customAuthHeaderName=\).*\$/\1${customAuthHeaderName}/" configuration.properties
sed -i "s/\(logoutPage=\).*\$/\1${logoutPage}/" configuration.properties
El segundo valor customAuthHeaderName
viene del archivo de propiedades
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-23 13:45:10