Come eseguire il debug / modificare il codice Java mentre il programma è in esecuzione?

14

Ho appena visto un video che mostra come Notch (di fama Minecraft) sta eseguendo il debug e modificando Minecraft mentre è in esecuzione. Mette in pausa il gioco, cambia qualcosa nel codice e poi disfa il gioco dove la modifica ha effetto immediato senza la necessità di riavviare il programma.

Come funziona? Quale tipo di tecnica viene utilizzata per raggiungere questo obiettivo?

    
posta RoToRa 16.02.2012 - 09:45
fonte

2 risposte

4

Java può fare hot-swap fuori dalla scatola. Se usi un IDE come Eclipse, funzionerà per cambiare i corpi dei metodi. Se si desidera applicare altre modifiche al codice, è possibile che si desideri utilizzare uno strumento. JRebel è un prodotto che supporta più casi.

Non voglio fare marketing per quel prodotto, ma personalmente non conosco altre alternative. Sul sito web JRebel c'è un bel confronto delle caratteristiche .

Spero che ti aiuti.

    
risposta data 16.02.2012 - 10:37
fonte
3

Si chiama hot code replace e consente a un IDE di modificare il codice di esecuzione in tempo reale tramite l'interfaccia di debug. È stato supportato da Sun JVM da Java 1.4.1

Tuttavia, a meno che non si usi l'estensione (commerciale) JRebel JVM, è limitata alle modifiche all'interno dei corpi dei metodi. Se si aggiungono / rimuovono metodi o classi o si modificano le firme, è necessario riavviare la JVM.

    
risposta data 16.02.2012 - 10:50
fonte

Leggi altre domande sui tag