Migração de aplicação do Java 8 (Oracle) para o Java 21 (OpenJDK)

Tenho uma aplicação desktop desenvolvida totalmente em Java 8, porém agora a intenção é migrar essa aplicação para o OpenJDK 21 (tanto no desenvolvimento dela quanto na execução). Qual seria o primeiro passo a ser feito?

Instalar o JDK novo, mudar a configuração no seu projeto para usar o novo JDK, compilar e testar.
Nada demais.

1.Se sua aplicação foi feita em Swing, provavelmente roda de primeira e de forma direta
( Se o programa falhar com erros de IllegalAccessError, NoSuchMethodError, você pode tentar usar flags temporárias da JVM como --add-exports ou --add-opens para reabrir o acesso a pacotes específicos)

  1. Se foi em JavaFX, precisa chamar os modulos, ou ainda melhor, criar um novo projeto criando o module-info.java e portar todos os seus fontes, deverão rodar sem problemas.

Você quer migrar para o Java 21, por que não pensa no java 25, esta simplesmente um absurdo de bom. baixei esse aqui o da Oracle GraalVM, mas pode ser qualquer outro, com esses parametros
-XX:+UseCompactObjectHeaders -XX:+UseZGC -XX:+UseCompressedOops, ele compacta o cabeçalho dos objetos e o resultado da jvm Hotspot me surpreendeu. o uso da memoria ficou do tamanho da jvm OpenJ9 da IBM com uma grande diferença usando JavaFX, que foi a velocidade de renderização grafica, deixou o OpenJ9 comendo poeira, os caras da IBM tem algo a se preocupar.

https://www.graalvm.org/

Se vc usava o antigo javapackager para gerar seu aplicativo desktop, vai ter que usar o jpackage, o substituto , introduzido no java 14. Ou usar o famoso jlink.

Fiz a migração pro java 25, estou com um dificuldade diferente agora, na hora de executar o .jar, com o Java Oracle instalado, no Windows 11, eu apenas executava meu .jar com duplo clique, porém, agora com o OpenJDK, não consegui essa parte, testei várias possibilidades, mas só estou conseguindo executar via terminal. Tem algo específico que preciso ajustar no meu .jar?

https://www.google.com/search?q=how+to+register+.jar+extension+to+open+throught+openjdk+windows

Deu certo, muito obrigada!

1 curtida