Condividi tramite


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.

Use the selector to change your Java version

È 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.