Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A Microsoft reconhece e suporta a adoção de tempos de execução Java personalizados criados para necessidades específicas de aplicativos, em vez do uso de tempos de execução Java de uso geral. Este método de implementação Java garante que o tempo de execução Java contenha apenas as partes da plataforma Java que são realmente necessárias para as aplicações, aumentando assim a segurança, reduzindo o tamanho da implementação e melhorando o desempenho, tanto para aplicações Java baseadas na nuvem e servidor, como para aplicações desktop/GUI.
Tradicionalmente, a Oracle/Sun Microsystems produziria instaladores Java Runtime Environment (JRE) que conteriam apenas a Java Virtual Machine, as APIs Java e integrações específicas de SO e navegador, destinadas a permitir que computadores executem aplicativos Java baixados da Internet ou executem Applets e aplicativos Java Web Start através do navegador.
Com o advento das aplicações web e navegadores modernos, as tecnologias Applets e Java Web Start tornaram-se obsoletas e os navegadores deixaram de suportar plugins Java. A necessidade de ambientes de execução Java de uso geral pré-instalados em computadores tornou-se menos significativa ao longo do tempo. Com o Java 9, a API do Applet foi preterida (veja JEP 289) e com o Java 17, a API ficou marcada para remoção, o que significa que certamente será removida em uma versão futura do Java.
Outra mudança significativa é a modularização do Java, também iniciada com a versão Java 9 (veja JSR 376). Como parte dessa alteração, os desenvolvedores agora podem usar uma linha de comando recém-adicionada no JDK chamada jlink para produzir um tempo de execução Java personalizado projetado especificamente para atender às necessidades dos aplicativos, para ser implantado como um tempo de execução incorporado integrado junto com o código do aplicativo muitas vezes como parte de uma imagem de contêiner para cargas de trabalho baseadas em nuvem, ou como parte de instaladores para aplicações baseadas em GUI.
Hoje, Minecraft: Java Edition é distribuído a milhões de jogadores de Minecraft, com um tempo de execução Java personalizado incorporado no jogo. Por trás de serviços online como LinkedIn, Yammer, Bing e Azure, a Microsoft também implanta centenas de milhares de JVMs usando essa técnica.
Criar um tempo de execução Java personalizado
Para criar um tempo de execução Java, você deve ter o JDK 9 ou posterior instalado em seu ambiente. Baixe e instale o Microsoft Build do OpenJDK primeiro.
Identifique os módulos necessários com jdeps
A plataforma Java agora está segmentada em módulos. Consulte a documentação do Java 17 para obter uma lista completa; outras versões do Java podem incluir novos módulos.
A ferramenta jdeps JDK pode ser usada para analisar um .class arquivo, um diretório ou um JAR arquivo, para identificar dependências do módulo Java, dependências internas do JDK e outras informações úteis que ajudarão os desenvolvedores a produzir tempos de execução Java.
$ cat HelloWorld.java
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
$ jdeps HelloWorld.class
HelloWorld.class -> java.base
<unnamed> -> java.io java.base
<unnamed> -> java.lang java.base
A ferramenta jdeps indica que esta classe depende apenas dos tipos nos pacotes java.lang e java.io, portanto só precisa do módulo java.base. Uma saída semelhante seria produzida para um arquivo JAR como entrada. Com uma lista dos módulos necessários, agora é possível criar um ambiente de execução Java.
Criando um ambiente de execução Java com jlink
Para criar um tempo de execução Java a partir do JDK, você deve saber quais módulos deseja. Use jdeps para identificá-los. Para obter detalhes sobre a ferramenta de linha de jlink comando, consulte a documentação.
Exemplo:
$ jlink \
--add-modules java.base \
--strip-debug \
--no-man-pages \
--no-header-files \
--compress=2 \
--output /javaruntime
Agora você pode usar o tempo de execução Java localizado em /javaruntime para executar o código do aplicativo dependente do java.base módulo. A estrutura da pasta javaruntime produzida por jlink é semelhante à estrutura de diretórios do JDK, e a ferramenta de linha de comando java para iniciar a JVM está localizada na pasta ./bin/ como de costume. Dado que um tempo de execução Java personalizado contém todos os módulos necessários de uma aplicação existente, ele pode ser referenciado por JAVA_HOME.
$ /javaruntime/bin/java HelloWorld
Hello, World!
No exemplo acima, o tempo de execução Java produzido no Windows consome cerca de 24 MB no Windows.
Crie um ambiente de execução Java com uma imagem de contêiner Docker
Você pode usar compilações de vários estágios do Docker para criar, consumir e empacotar o tempo de execução Java personalizado como parte de sua compilação de imagem. Veja como criar tempos de execução Java usando o Docker.
Base de dados de conhecimento
javax.net.ssl.SSLHandshakeException: Alerta fatal recebido: handshake_failure
Visite Java Security and Cryptography para obter uma explicação sobre como corrigir esse problema.
Recursos
Forneça comentários sobre o Microsoft Build do OpenJDK
Envie-nos seus comentários, pensamentos e ideias para nos ajudar a melhorar o Microsoft Build do OpenJDK. Visite nossa página de discussões do OpenJDK no GitHub para nos enviar seus comentários.
Java e OpenJDK são marcas comerciais ou marcas comerciais registadas da Oracle e/ou das suas afiliadas.