So che ci sono molte domande su questo argomento. Ma si tratta principalmente di preservare lo stato delle classi e delle variabili.Reload classi durante il runtime JVM
Voglio rendere la mia applicazione per ottenere la sua versione più recente (tutto in un unico contenitore) e riavviare se stesso.
La mia applicazione utilizza la funzione main() proprio come punto di partenza, quindi ho appena inizializzato una classe e l'intera applicazione parte da lì. Quindi questo mi ha fatto pensare. Potrei fermare l'intera applicazione in main(). Sovrascrivi il vecchio jar e quindi la JVM potrebbe, in teoria, ricaricare tutte le classi tranne la classe contenente main() e il main reinizializza tutto ed eseguilo.
È troppo fastidioso? Dovrei semplicemente usare un jar bootstrap che gestisce solo il lancio di detto jar e il download della sua versione più recente.
Uno script di shell bootstrap è probabilmente il più semplice. –
Vuoi cambiare jar in fase di runtime? e non vuoi riavviare JVM? – Vipin
dalla mia ipotesi, avrai almeno bisogno di un) jar diversi per la tua classe principale e le classi ricaricabili b) usare il reflection solo nella tua classe principale c) molto probabilmente un ClassLoader diverso per il jar ricaricabile – EasterBunnyBugSmasher