Explorando jrecreate

Explorando jrecreate

1. Introdução ao EJDK

O EJDK (Embedded Java Development Kit) foi introduzido pela Oracle para resolver o problema de fornecer binários para todas as plataformas incorporadas disponíveis. Podemos fazer download do EJDK mais recente deOracle’s site here.

Simplificando, ele contém as ferramentas para criar JREs específicos da plataforma.

2. jrecreate

EJDK fornecejrecreate.bat para Windows ejrecreate.sh para plataformas Unix / Linux. Essa ferramenta ajuda na montagem de JREs personalizados para plataformas que desejamos usar e foi introduzida em:

  • minimizar a liberação de binários da Oracle para todas as plataformas

  • facilita a criação de JREs customizados para outras plataformas

A seguinte sintaxe é usada para executar o comandojrecreate; em Unix / Linux:

$jrecreate.sh -

E no Windows:

$jrecreate.bat -

Observe que podemos adicionar várias opções para uma única criação de JRE. Agora, vamos dar uma olhada em algumas das opções disponíveis para a ferramenta.

3. Opções parajrecreate

3.1. Destino

A opçãodestination é necessária e especifica o diretório no qual o JRE de destino deve ser criado:

$jrecreate.sh -d /SampleJRE

Ao executar o comando acima, um JRE padrão será criado no local especificado. A saída da linha de comando será:

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRE
    target: linux_i586
    vm: all
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 55,205 KB (on disk usage may be greater).
Embedded JRE created successfully

A partir do resultado acima, podemos ver que o JRE de destino é criado no diretório de destino especificado. Todas as outras opções assumiram seus valores padrão.

3.2. Perfis

A opçãoprofile é usada para gerenciar o tamanho do JRE de destino. Os perfis definem a funcionalidade da API a ser incluída. Se a opção de perfil não for especificada, a ferramenta incluirá todas as APIs do JRE por padrão:

$jrecreate.sh -d /SampleJRECompact1/ -p compact1

Um JRE com um perfilcompact1 será criado. Também podemos usar––profile em vez de-p no comando. A saída da linha de comando exibirá o seguinte resultado:

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRECompact1
    target: linux_i586
    vm: minimal
    runtime: compact1 profile
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 10,808 KB (on disk usage may be greater).
Embedded JRE created successfully

No resultado acima, observe que a opçãoruntime tem o valorcompact1. Observe também que o tamanho do resultado do JRE está abaixo de 11 MB, abaixo dos 55 MB no exemplo anterior.

Existem três opções disponíveis para a configuração do perfil:compact1,compact2, ecompact3.

3.3. JVMs

A opçãojvm é usada para personalizar nosso JRE de destino com JVMs específicos com base nas necessidades do usuário. Por padrão, inclui todas as JVMs disponíveis (cliente, servidor e mínimo) se as opçõesprofileejvm não forem especificadas:

$jrecreate.sh -d /SampleJREClientJVM/ --vm client

Um JRE comclient jvm será criado. A saída da linha de comando exibirá o seguinte resultado:

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJREClientJVM
    target: linux_i586
    vm: Client
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: []
}

Target JRE Size is 46,217 KB (on disk usage may be greater).
Embedded JRE created successfully

No resultado acima, observe que a opçãovm tem o valorClient. Também podemos especificar as outras JVMs comoservereminimal com esta opção.

3.4. Extensão

A opçãoextension é usada para incluir várias extensões permitidas no JRE de destino. Por padrão, não há extensões adicionadas:

$jrecreate.sh -d /SampleJRESunecExt/ -x sunec

Um JRE com umextension sunec (provedor de segurança para criptografia de curva elíptica) será criado. Também podemos usar––extension em vez de-x no comando. A saída da linha de comando exibirá o seguinte resultado:

Building JRE using Options {
    ejdk-home: /installDir/ejdk1.8.0/bin/..
    dest: /SampleJRESunecExt
    target: linux_i586
    vm: all
    runtime: jre
    debug: false
    keep-debug-info: false
    no-compression: false
    dry-run: false
    verbose: false
    extension: [sunec]
}

Target JRE Size is 55,462 KB (on disk usage may be greater).
Embedded JRE created successfully

No resultado acima, observe que a opçãoextension tem o valorsunec. Múltiplas extensões podem ser adicionadas com esta opção.

3.5. Outras opções

Além das opções principais discutidas acima,jrecreate também facilita aos usuários mais algumas opções:

  • ––help: exibe um resumo das opções de linha de comando para a ferramenta jrecreate

  • ––debug: cria JRE que tem suporte para depuração

  • ––keep-debug-info: mantém as informações de depuração da classe e dos arquivos JAR não assinados

  • ––dry-run: executa uma simulação sem realmente criar o JRE

  • ––no-compression: cria um JRE com arquivos JAR não assinados em formato não compactado

  • ––verbose: exibe a saída detalhada para todos os comandosjrecreate

4. Conclusão

Neste tutorial, aprendemos os fundamentos do EJDK e como a ferramentajrecreate é usada para gerar JREs específicos da plataforma.