Hola amigos de Stack Overflow. Tengo un problema simple que me temo que no tiene una solución simple y necesito asesoramiento sobre cómo proceder. Estoy desarrollando una aplicación Java empaquetada como JAR ejecutable, pero se requiere modificar algunos de sus contenidos del archivo JAR durante la ejecución. En esta etapa, me tocó un problema porque algunos sistemas operativos bloquean el archivo impidiéndole escrituras.Modificar Ejecutar el archivo jar
Es esencial que el usuario vea una versión actualizada del archivo jar para cuando la aplicación finalice, aunque puedo ser bastante flexible en cuanto a cómo lograr esto. Una solución limpia y eficiente es obviamente preferible, pero la portabilidad es el único requisito difícil.
Los siguientes son tres enfoques que puedo ver para resolver el problema, no dude en comentarlos o sugerir otros.
- Dile a Java para desbloquear el archivo JAR para la escritura (ésto no parece posible, pero sería la solución easyest)
- Copiar los archivos de clase ejecutable en un archivo tempory al iniciar la aplicación, utilice un cargador de clases para cargar estos archivos y descargan los del archivo JAR inicial. (No tenía mucha experiencia con los cargadores de clases pero con suerte la JVM sería lo suficientemente inteligente como para darse cuenta de que el JAR original no está en uso y así desbloquearlo)
- Ponga un segundo Archivo JAR ejecutable dentro de Primero, al inicio, extraiga el contenedor interno para e archivo temporal, invoque un nuevo proceso java utilizando el JAR interior copiado y páselo a la ubicación del JAR externo, primer proceso salidas, segundo proceso modifys el tarro exterior unincumbered. (Esto funciona, pero no estoy seguro que hay una manera independiente de la plataforma de una aplicación java que invoca otra)
Sé que esto es una pregunta extraña pero cualquier ayuda se agradece .
¿Puede dar alguna indicación de por qué necesita modificar el archivo jar durante la ejecución? – Poindexter
@pinkynobrain estás pensando en la forma de la vieja escuela, te sugiero que leas maven por ejemplo ebook gratis, verás que lo que estás sugiriendo no tiene sentido ... No estoy tratando de ofenderte solo tratando de ayudarte ... no todos hemos estado allí – ant
¿Qué intentas lograr: una aplicación que se actualice automáticamente? –