Java Web Start - Java Web Start

Na computação , o Java Web Start (também conhecido como JavaWS , javaws ou JAWS ) foi um framework desenvolvido pela Sun Microsystems (agora Oracle ) que permite aos usuários iniciar software aplicativo para a plataforma Java diretamente da Internet usando um navegador da web . Alguns dos principais benefícios dessa tecnologia incluem atualização contínua da versão para aplicativos distribuídos globalmente e maior controle da alocação de memória para a máquina virtual Java .

O Java Web Start foi distribuído como parte da plataforma Java e incluído nos downloads do JRE e JDK. Ele foi descontinuado pela Oracle no Java SE 9 e removido no Java SE 11. O código do Java Web Start não foi lançado pela Oracle como parte do OpenJDK e, portanto, o OpenJDK originalmente não o suportava. O IcedTea-Web fornece uma implementação independente de código aberto do Java Web Start que é desenvolvida atualmente pela comunidade AdoptOpenJDK , RedHat e Karakun AG , e que está incluída no instalador oficial do OpenJDK. Além disso, o OpenWebStart fornece uma implementação baseada em código aberto baseada no IcedTea-Web, mas oferece mais recursos e opções de suporte comercial.

Funcionalidade

Ao contrário dos miniaplicativos Java , os aplicativos Web Start não são executados dentro do navegador. Por padrão, eles são executados na mesma sandbox que os miniaplicativos, com várias extensões menores, como permitir carregar e salvar o arquivo que é explicitamente selecionado pelo usuário através da caixa de diálogo de seleção de arquivo. Apenas aplicativos assinados podem ser configurados para ter permissões adicionais.

O Web Start tem uma vantagem sobre os miniaplicativos, pois supera muitos problemas de compatibilidade com plug - ins Java dos navegadores e diferentes versões de JVM . Os programas Web Start não são mais parte integrante da página da web, são aplicativos independentes executados em um quadro separado.

O Web Start também pode lançar miniaplicativos não modificados que são empacotados dentro de arquivos .jar, gravando o arquivo JNLP apropriado. Este arquivo também pode passar os parâmetros do miniaplicativo. Esses miniaplicativos também são executados em um quadro separado. O iniciador do miniaplicativo pode não oferecer suporte a alguns casos específicos, como carregamento de classe como recurso.

Como os miniaplicativos, o Java Web Start é multiplataforma .

Suspensão de uso

Com o JDK9, várias tecnologias de implantação, incluindo miniaplicativos e Java Web Start, foram descontinuadas pela Oracle.

Em março de 2018, a Oracle anunciou que não incluirá o Java Web Start no Java SE 11 (18.9 LTS) e posterior. Os desenvolvedores precisarão fazer a transição para outras tecnologias de implantação. Algumas alternativas independentes surgiram desde então.

Implementação

As primeiras versões do Java Web Start vinham com um gerenciador de aplicativos onde, por exemplo, os aplicativos de demonstração da Sun podiam ser iniciados

O desenvolvedor prepara um arquivo XML especial com extensão JNLP. Este arquivo descreve os requisitos do aplicativo, localização do código, parâmetros e permissões adicionais (se houver). Os downloads do navegador este arquivo como qualquer outro e (após a sua tipo MIME , application/x-java-jnlp-file) abre com a ferramenta Web Start. A ferramenta Web Start baixa todos os recursos necessários e inicia o aplicativo.

Java Web Start fornece uma série de classes no pacote javax.jnlp que fornecem vários serviços ao aplicativo. A Sun projetou a maioria desses serviços com o objetivo de permitir o acesso cuidadosamente controlado a recursos (como arquivos e a área de transferência do sistema) enquanto restringe o aplicativo a operações autorizadas.

A Sun introduziu a versão 1.0 do Web Start em março de 2001, enquanto o suporte para Windows de 64 bits foi adicionado apenas no Java 6 (mais recente do que o Java de 64 bits estava disponível pela primeira vez). Como o J2SE 1.4 Web Start vem como uma parte padrão do Java Runtime Environment (JRE) chamado javaws, os administradores de computador não precisam mais instalá-lo separadamente.

Protocolo de lançamento de rede Java (JNLP)

Os programadores costumam falar do Java Network Launching Protocol ( JNLP ) de forma intercambiável com o termo "Web Start". O protocolo JNLP, definido com um esquema XML , especifica como iniciar aplicativos Java Web Start. JNLP consiste em um conjunto de regras que definem como exatamente implementar o mecanismo de lançamento. Os arquivos JNLP incluem informações como a localização do arquivo do pacote jar e o nome da classe principal do aplicativo, além de quaisquer outros parâmetros do programa. Um navegador configurado corretamente passa os arquivos JNLP para um Java Runtime Environment (JRE) que, por sua vez, baixa o aplicativo na máquina do usuário e começa a executá-lo. O desenvolvimento do JNLP ocorreu sob o Java Community Process como JSR 56. Inclui o release 1.0 original, o release de manutenção 1.5 subsequente e, a partir de 2006, o release de manutenção 6.0 pendente.

Recursos importantes do Web Start incluem a capacidade de baixar e instalar automaticamente um JRE no caso em que o usuário não tenha o Java instalado e para que os programadores especifiquem qual versão do JRE um determinado programa precisa para ser executado. O usuário não precisa permanecer conectado à Internet para executar os programas baixados, pois eles são executados a partir de um cache mantido localmente . As atualizações do software são baixadas da Web e ficam disponíveis quando o usuário tem uma conexão com a Internet, aliviando assim o fardo da implantação.

Qualquer usuário de computador pode usar JNLP simplesmente instalando um cliente JNLP (mais comumente Java Web Start). A instalação pode ocorrer automaticamente de forma que o usuário final veja o inicializador do cliente baixando e instalando o aplicativo Java quando executado pela primeira vez.

JNLP funciona de maneira semelhante a como HTTP / HTML funciona para a web. Para renderizar uma página da web em HTML , depois que o usuário clica em um link da web , o navegador envia uma URL a um servidor da web , que responde com um arquivo HTML. O navegador então solicita os recursos referidos por este arquivo (imagens, css ) e, finalmente, renderiza a página depois de receber informações suficientes. A renderização da página geralmente começa antes do download de todos os recursos; alguns recursos não críticos para o layout da página (como imagens) podem seguir adiante.

O JNLP reflete esse processo; da mesma forma que um navegador da Web renderiza uma página da Web, um cliente JNLP "renderiza" um aplicativo Java . Depois que o usuário clica em um link da web, o navegador envia uma URL a um servidor da web, que responde com um arquivo JNLP (em vez de um arquivo HTML) para o aplicativo. O cliente JNLP analisa esse arquivo, solicita os recursos especificados (arquivos jar), aguarda a recuperação de todos os recursos necessários e, em seguida, inicia o aplicativo. O arquivo JNLP pode listar recursos como "preguiçosos", o que informa ao cliente JNLP que o aplicativo não precisa desses recursos para iniciar, mas pode recuperá-los posteriormente quando / se o aplicativo os solicitar.

Exemplo

O exemplo abaixo fornece um arquivo JNLP simples para iniciar o miniaplicativo, especificando a base de código, fonte, classe principal e tamanho da janela. Esse arquivo contém todas as referências necessárias e é autossuficiente para iniciar o aplicativo. Como nenhuma permissão é solicitada, o código será executado em uma sandbox. O JNLP também afirma que este aplicativo pode ser executado offline (se já estiver armazenado em cache) e deve ser atualizado como um processo em segundo plano.

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://ultrastudio.org/upload" href="">
    <information>
        <title>Launch applet with Web Start</title>
        <vendor>Foo Bar Inc.</vendor>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main="true" />
    </resources>
    <applet-desc name="Ray diagram applet" main-class="raydiagramsapplet.Main" width="300" height="200">
    </applet-desc>
  <update check="background"/>
</jnlp>

Compressão Pack200

Para reduzir o tamanho de um aplicativo Java Web Start, a Sun Microsystems introduziu um sistema de compactação chamado Pack200 no Java 1.5.0. Ele pode compactar um arquivo jar grande para um nono de seu tamanho original se contiver apenas classes Java.

O Java Web Start oferece suporte ao Pack200 desde que apareceu pela primeira vez, mas inicialmente esse recurso exigia cooperação do lado do servidor e uma certa experiência para ser configurado. Quando a Sun introduziu o Java SE 6u10, o suporte Pack200 foi disponibilizado sem a necessidade de suporte especial do servidor. Os designers de aplicativos podem ativar ou desativar esse recurso nos arquivos JNLP.

Em conexões lentas, o Pack200 aumenta o desempenho no tempo de inicialização e download do aplicativo.

Aplicativos Web Start assinados

Por padrão, os aplicativos Java Web Start são executados de forma "restrita", o que significa que eles não têm acesso a alguns recursos do sistema, como arquivos locais. Mas os editores podem remover essas restrições assinando seus aplicativos Web Start com a jarsignerferramenta que vem com o JDK .

Alternativas

O projeto de código aberto IcedTea fornece uma implementação alternativa de JNLP no IcedTea-Web . A partir da versão 1.7.2, ele também funciona em versões mais recentes sem suporte JWS oficial.

Para executar o aplicativo baseado em Java Web Start após o lançamento do Java 11, a empresa Karakun AG lançou a ferramenta open source OpenWebStart , baseada no IcedTea-Web. A ferramenta inclui todas as funcionalidades do IcedTea-Web e adiciona recursos estendidos, como instaladores nativos para Mac OS, Windows e Linux. IcedTea-Web foi criado com o suporte de RedHat e AdoptOpenJDK .

Aplicativos notáveis

Veja também

Referências

links externos