Transição do Java 7 para o Java 8

Este artigo fornece diretrizes de alto nível de como migrar seu aplicativo do Java 7 para o Java 8. O uso de recursos do Java 8 não é abordado.

Não há uma solução padronizada para fazer a transição do código do Java 7 para o Java 8. A migração do Java 7 para o Java 8 normalmente é pouco trabalhosa. Os possíveis problemas incluem algumas APIs alteradas, o reforço da inferência de tipos em javac, alterações nos carregadores de classe e alterações no permgen (parte da coleta de lixo).

Em geral, a melhor abordagem é tentar a execução no Java 8 sem recompilar o código primeiro. Com essa abordagem, o aplicativo vai entrar em funcionamento o quanto antes. Para uma biblioteca, a meta será publicar um artefato compilado e testado com o JDK 8.

EOL (fim do serviço) do Java 7

O suporte da comunidade terminará quando o Java 7 atingir o fim do serviço em 29 de julho de 2022. Todos os aplicativos em execução no Java 7 continuarão a ser executados, mas o Java 7 em si não receberá atualizações nem patches de segurança. Para minimizar o risco e possíveis vulnerabilidades de segurança, atualize seus aplicativos para o Java 8 ou 11, dependendo dos requisitos de carga de trabalho.

O guia canônico a ser seguido é o Guia de Migração do Oracle JDK. O guia de migração aborda todas as incompatibilidades na especificação do Java e incompatibilidades na implementação do JDK. A maioria dessas incompatibilidades são casos de borda. Você deverá fazer uma investigação quando ocorrer um aviso ou um erro.

Executar no Java 8

A maioria dos aplicativos deve ser executada no Java 8 sem modificação. A primeira coisa a ser tentada é a execução no Java 8 sem recompilar o código. A questão de apenas executar é ver quais avisos e erros são provenientes da execução. Essa abordagem obtém um
aplicativo a ser executado no Java 8 com mais rapidez visando o mínimo esforço necessário.

Você pode resolver a maioria dos problemas que podem ocorrer sem precisar recompilar o código. Se algum problema precisar ser corrigido no código, corrija-o, mas continue a compilação com o JDK 7. Se possível, tente fazer com que o aplicativo seja executado com o java versão 8 antes de compilar o código com o JDK 8.

Compilar o código com Java 8

A compilação com o JDK 8 pode exigir atualizações para criar scripts, ferramentas, estruturas de teste e bibliotecas incluídas. Use a opção -Xlint:unchecked do javac para obter os detalhes sobre o uso da API interna do JDK e outros avisos.

Migração do Serviço de Aplicativo do Azure do Java 7

Para migrar os Serviços de Aplicativos do Java 7 para o Java 8 ou 11, entre no portal do Azure, navegue até os aplicativos Web que deseja atualizar e acesse Configuração>Configurações>Configurações de Pilha. Você verá os menus suspensos das versões principal e secundária do Java e a versão do Tomcat se o estiver usando. Selecione o Java 8 ou 11. Lembre-se de que você pode fazer essa alteração de configuração em um slot de implantação para testar com segurança a alteração de configuração e depois trocar o novo ambiente para produção. (O Java 7 pode ser ocultado para impedir que os clientes usem dependências dos runtimes antigos). Para obter mais informações, confira Configurar ambientes de preparo no Serviço de Aplicativo do Azure.

Use the selector to change your Java version

Você pode usar a configuração de aplicativo JAVA_TOOLS para especificar novas opções de runtime e elas serão aplicadas quando o aplicativo for iniciado. Para obter mais informações, confira Configurar um aplicativo Java para o Serviço de Aplicativo do Azure. Para obter mais informações sobre políticas de suporte para runtimes no Serviço de Aplicativo, confira a seção Linguagens e estruturas internas da visão geral do Serviço de Aplicativo.

Próximas etapas

Depois de fazer com que o aplicativo seja executado no Java 8, recomendamos que você siga o caminho de modernização do Java para o Java 11 usando os guias a seguir.