O que é o formato de ficheiro JNLP?
Arquivos com a extensão .jnlp contêm dados armazenados usando sintaxe XML. Tais dados descrevem um aplicativo ou applet Java cujo código-fonte reside em um servidor remoto, destinado a ser iniciado localmente de acordo com o Java Network Launch Protocol - originalmente implementado pelo Java Web Start.
Um arquivo .jnlp normalmente contém:
- Informações sobre o aplicativo - título, fornecedor, descrição e página inicial,
- Recursos - a URL (atributo
codebase) onde os pacotes arquivo JAR estão hospedados, - Configurações de segurança - permissões que permitem ao aplicativo realizar certas ações,
- Elemento de destino - a classe principal e os parâmetros do aplicativo ou applet web.
Um arquivo .jnlp também pode conter muitos detalhes diferentes sobre requisitos de versão do JRE, ícones, preferências de atalho e políticas de atualização. A especificação completa é definida pelo JSR-56 (Sun Microsystems / Oracle) e os atributos do elemento raiz <jnlp> apontam de volta para a localização do servidor do aplicativo. O Java Web Start - o inicializador javaws original incluído no JRE 1.4 até o Java 8 - foi descontinuado no Java 9 (2017) e removido inteiramente no Java 11 (2018). Alternativas modernas são o OpenWebStart (uma substituição de código aberto multiplataforma) e o IcedTea-Web no Linux. O conteúdo de um arquivo .jnlp pode ser visualizado e editado usando qualquer editor de texto simples.
Segurança e proteção
RISCO: MEDIUMO arquivo JNLP em si é um XML inerte, mas o que ele inicia é um aplicativo Java de desktop completo, historicamente com <all-permissions/> - anexos JNLP foram um vetor documentado de phishing/malware na década de 2010 precisamente porque o javaws buscava e executava código remoto. Hoje a superfície de ataque é pequena (o Java moderno não consegue executá-los), mas qualquer pessoa com OpenWebStart ou Java 8 legado instalado deve abrir apenas arquivos JNLP de servidores em que confia e verificar a URL do codebase em um editor de texto primeiro. Anexos de e-mail .jnlp inesperados devem ser excluídos.
Detalhes do formato
em resumoProgramas que abrem arquivos JNLP
Detalhes técnicos
especificação profunda| Tipo de formato | Descritor de inicialização de aplicativo XML (texto simples) |
| Elemento XML raiz | `<jnlp>` com atributo `codebase` obrigatório e atributo `href` opcional |
| Tipo MIME | `application/x-java-jnlp-file` |
| Codificação de caracteres | UTF-8 (XML padrão; declarado na instrução de processamento `<?xml?>`) |
| Assinatura binária | Nenhuma - XML de texto simples; os arquivos começam com `<?xml` seguido por um elemento raiz `<jnlp>` |
| Desenvolvedor original | Sun Microsystems (posteriormente Oracle); padronizado como JSR-56 |
| Inicializador legado | `javaws` (Java Web Start), incluído no JRE 1.4 até o Java 8 |
| Inicializadores atuais | OpenWebStart (multiplataforma, código aberto); IcedTea-Web (Linux) |
| Status do ciclo de vida | Java Web Start descontinuado no Java 9 (2017); removido no Java 11 (2018) |
| Elemento de referência JAR | `<jar href="..."/>` dentro do bloco `<resources>` vincula os pacotes `.jar` do aplicativo |
| Descritor de segurança | `<security><all-permissions/></security>` concede acesso total; a ausência significa sandbox |
| Segmentação de versão JRE | O elemento `<java version="..."/>` ou `<j2se version="..."/>` especifica o ambiente de execução mínimo |
| Suporte para inicialização offline | O elemento `<offline-allowed/>` permite a inicialização sem rede após o cache inicial do JAR |
| Tipos de aplicativos suportados | Aplicativos Java padrão, applets e extensões de instalador (JNLP `<extension>` aninhado) |
| Cache de JAR | O inicializador baixa e armazena os JARs localmente; o atributo `version` em `<jar>` permite atualizações delta |
| Lançado | 2001 (Java Web Start, J2SE 1.3.1/1.4 era; standardized as JSR-56) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | jcp.org |
Conversões de JNLP
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos JNLP.