Transizione da Java 7 a Java 8
Questo articolo fornisce indicazioni di alto livello sulla migrazione dell'applicazione da Java 7 a Java 8. L'utilizzo delle funzionalità Java 8 non è coperto.
Non esiste una soluzione adatta a tutte le dimensioni per la transizione del codice da Java 7 a Java 8. Il passaggio da Java 7 a Java 8 è in genere una piccola quantità di lavoro. I potenziali problemi includono una manciata di API modificate, la stretta dell'inferenza dei tipi in javac, le modifiche apportate ai caricatori di classe e le modifiche apportate a permgen (parte di Garbage Collection).
In generale, l'approccio migliore consiste nel provare a eseguire in Java 8 senza ricompilare prima. Questo approccio otterrà l'esecuzione dell'applicazione il più rapidamente possibile. Per una libreria, l'obiettivo sarà pubblicare un artefatto compilato e testato con JDK 8.
Java 7 End of Life (EOL)
Community supporto termina quando Java 7 raggiunge end of life il 29 luglio 2022. Tutte le applicazioni in esecuzione in Java 7 continueranno a essere eseguite, ma Java 7 non riceverà aggiornamenti o patch di sicurezza. Per ridurre al minimo i rischi e potenziali vulnerabilità di sicurezza, aggiornare le applicazioni a Java 8 o 11 a seconda dei requisiti del carico di lavoro.
La guida canonica da seguire è la Guida alla migrazione di Oracle JDK. La guida alla migrazione illustra tutte le incompatibilità nella specifica Java e nelle incompatibilità nell'implementazione JDK. La maggior parte di queste incompatibilità sono casi perimetrali e si dovrebbe analizzare quando viene visualizzato un avviso o si verifica un errore.
Esecuzione in Java 8
La maggior parte delle applicazioni deve essere eseguita in Java 8 senza modifiche. La prima cosa da provare consiste nell'eseguire in Java 8 senza ricompilare il codice. L'obiettivo è verificare quali avvisi ed errori vengono generati dall'esecuzione. Il risultato di questo approccio è
applicazione da eseguire in Java 8 più rapidamente concentrandosi sul lavoro minimo che deve essere eseguito.
È possibile risolvere la maggior parte dei problemi che potrebbero verificarsi senza dover ricompilare il codice.
Se è necessario risolvere un problema nel codice, apportare la correzione, ma continuare a compilare con JDK 7. Se possibile, lavorare per ottenere l'applicazione da eseguire con java
la versione 8 prima di compilare con JDK 8.
Compilazione con Java 8
La compilazione con JDK 8 può richiedere aggiornamenti per compilare script, strumenti, framework di test e librerie incluse. Usare l'opzione -Xlint:unchecked
per javac
ottenere i dettagli sull'uso dell'API interna JDK e di altri avvisi.
Migrazione da Java 7 per Servizio app di Azure
Per eseguire la migrazione dei servizi app da Java 7 a Java 8 o 11, accedere a portale di Azure, passare alle app Web da aggiornare, quindi passare a Configuration>Impostazioni>Stack Impostazioni. Verranno visualizzati gli elenchi a discesa per le versioni principali e secondarie java e la versione tomcat se si usa Tomcat. Selezionare Java 8 o 11. Tenere presente che è possibile apportare questa modifica di configurazione in uno slot di distribuzione per testare in modo sicuro la modifica della configurazione, quindi scambiare il nuovo ambiente in produzione. Java 7 potrebbe essere nascosto per impedire ai clienti di prendere dipendenze dai runtime precedenti. Per altre informazioni, vedere Configurare gli ambienti di staging in Servizio app di Azure.
È possibile usare l'impostazione dell'app JAVA_TOOLS
se è necessario specificare le nuove opzioni di runtime e verranno applicate all'avvio dell'applicazione. Per altre informazioni, vedere Configurare un'app Java per Servizio app di Azure. Per altre informazioni sui criteri di supporto per i runtime in servizio app, vedere la sezione Linguaggi e framework predefiniti della panoramica di servizio app.
Passaggi successivi
Dopo aver eseguito l'applicazione in Java 8, è consigliabile seguire il percorso di modernizzazione Java a Java 11 usando le guide seguenti.