Por exemplo, como criar um arquivo que eu pudesse enviar para um pessoa e que ela pudesse abrir, tendo o JVM instaldo em sua maquina, sem precisar fazer coisas do tipo c:\ java arquivo ? Um arquivo parecido ocm o .jpln (acho que é assim), que nos documentos do Sun, você clica em Launch e aparece um arquivo =D
Alguem poderia me dizer se tem como fazer isso e como se faz?
A partir das versões do JDK 6.0, o instalador cria um chave no registro do windows que associa todo arquivo “.jar" ao Interpretador/Compilador “Javaw” do JVM, ou seja, seria a mesma coisa que quando voce clica num arquivo com a extensão ".doc” ou “.docx" ele abre o Winword.exe e de quebre já abre o arquivo clicado, com o Java, o Javaw, vai interpretar os bytecodes do ser arquivo ".jar” e em alguns casos, nos códigos repetitivos, o compilador “Just-in-Time” já recompila para o código nativo da máquina dando celeridade de execução.
Versões anteriores do JDK 6.0, o arquivos “.jar" só poderiam ser executados, invocando o Interpretador “Java” dentro do promt do DOS, neste caso, a sugestão da nossa amiga Lina, cabe muito bem, ou seja voce criar um arquivo ".bat” com comandos do DOS invocando o Interpretador “Java”.
[quote=wellington.nogueira]
…
…
Apenas um cuidado, as vezes o registro de execução do jar automaticamente através do javaw se perde (instaladores de programas de compactação tendem a fazer isso).
Quanto ao bat, pode utilizar o javaw também ou então pode-se criar um executável que faça essa ação (o eclipse faz algo do tipo), ou simplesmente um atalho.[/quote]
Pra falar a verdade, a linguagem java inicialmente não foi criada para gerar executáveis, e até hoje não gera, isto porque iria contra os seus princípios da multiplataforma, onde uma vez linkeditada as bibliotecas do sistema operacional onde foi desenvolvido o projeto, o programa passa a ser monoplataforma e a máquina virtual perde totalmente a sua funcionalidade. O que se cria na realidade, não são arquivos executáveis, e é exatamente isto que precisa ser esclarecido, o que se cria são mecanismos de associação dos arquivos “.jar" fazendo com que inicia-se a execução do interpretador Javaw para interpretar o arquivo ".jar” que ora foi clicado.
A compilação do “Just-in-Time” citada por mim anteriormente, fica temporiamente na camada de abstração do JVM, enquanto a aplicação estiver sendo rodada, que logo se perde quando esta pará de ser executada.
[quote=discorpio]A partir das versões do JDK 6.0, o instalador cria um chave no registro do windows que associa todo arquivo “.jar" ao Interpretador/Compilador “Javaw” do JVM, ou seja, seria a mesma coisa que quando voce clica num arquivo com a extensão ".doc” ou “.docx" ele abre o Winword.exe e de quebre já abre o arquivo clicado, com o Java, o Javaw, vai interpretar os bytecodes do ser arquivo ".jar” e em alguns casos, nos códigos repetitivos, o compilador “Just-in-Time” já recompila para o código nativo da máquina dando celeridade de execução.
Versões anteriores do JDK 6.0, o arquivos “.jar" só poderiam ser executados, invocando o Interpretador “Java” dentro do promt do DOS, neste caso, a sugestão da nossa amiga Lina, cabe muito bem, ou seja voce criar um arquivo ".bat” com comandos do DOS invocando o Interpretador “Java”.[/quote]
Apenas um cuidado, as vezes o registro de execução do jar automaticamente através do javaw se perde (instaladores de programas de compactação tendem a fazer isso).
Quanto ao bat, pode utilizar o javaw também ou então pode-se criar um executável que faça essa ação (o eclipse faz algo do tipo), ou simplesmente um atalho.
[quote=wellington.nogueira]
…
…
[/quote]Pra falar a verdade, a linguagem java inicialmente não foi criada para gerar executáveis, e até hoje não gera, isto porque iria contra os seus princípios da multiplataforma, onde uma vez linkeditada as bibliotecas do sistema operacional onde foi desenvolvido o projeto, o programa passa a ser monoplataforma e a máquina virtual perde totalmente a sua funcionalidade. O que se cria na realidade, não são arquivos executáveis, e é exatamente isto que precisa ser esclarecido, o que se cria são mecanismos de associação dos arquivos “.jar" fazendo com que inicia-se a execução do interpretador Javaw para interpretar o arquivo ".jar” que ora foi clicado.
A compilação do “Just-in-Time” citada por mim anteriormente, fica temporiamente na camada de abstração do JVM, enquanto a aplicação estiver sendo rodada, que logo se perde quando esta pará de ser executada.[/quote]
Eu entendi o que você disse. Apenas quis alertar que essa associação do sistema operacional ao executor do javaw pode ser perdida e você não consiga mais executar dessa forma (vale lembrar que, essa forma só funciona com um manifest.mf escrito corretamente, indicando a main-class).
Eu coloquei que o desenvolvedor pode, alternativamente, criar programas de execução batch (seja um .bat ou um .sh, ou outro) ou um executável que configure o ambiente e invoque o arquivo jar. No caso, para o programa ser multi-plataforma, essas alternativas deveriam ser realizadas para cada SO aplicável à solução. Ou então o usuário teria que invocar manualmente a ação.