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?

 26
Author: d0x, 2012-09-25

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.

 51
Author: Brian Agnew,
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
 2
Author: gtgaxiola,
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.
 2
Author: Sébastien Le Callonnec,
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

 1
Author: Jhonathan,
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

 1
Author: Natix,
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!

 0
Author: Aaron Digulla,
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

 -1
Author: srikant singh,
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