Pergunta

Se eu tiver um arquivo Java fonte (* .java) ou um arquivo de classe (* .class), como posso convertê-lo em um arquivo .exe?

Eu também preciso de um instalador para meu programa.

Foi útil?

Solução

javapackager

compila ferramentas O Java Packager, pacotes e prepara aplicativos Java e JavaFX para distribuição. O comando javapackager é a versão de linha de comando.

- documentação da Oracle

Os navios de utilidade javapackager com o JDK. Ele pode gerar arquivos .exe com a bandeira -native exe, entre muitas outras coisas.

WinRun4J

WinRun4j é um lançador de java para Windows. É uma alternativa para javaw.exe e oferece os seguintes benefícios:

  • Usa um arquivo INI para especificar classpath, classe principal, argumentos vm, args do programa.
  • nome personalizado executável que aparece no gerenciador de tarefas.
  • args JVM adicionais para o uso de memória mais flexível.
  • Built-in ícone substituto para o ícone personalizado.
  • [mais pontos de bala siga]

- webpage da WinRun4J

WinRun4J é um utilitário de código aberto. Tem muitos recursos.

packr

Pacotes seu JAR, ativos e uma JVM para distribuição em Windows, Linux e Mac OS X, adicionando um arquivo executável nativo para torná-lo aparecer como um aplicativo nativo. Packr é mais adequado para aplicações GUI.

- packr README

packr é outra ferramenta de código aberto.

JSmooth

JSmooth é um executável Wrapper Java. Ele cria lançadores nativas do Windows (.exe padrão) para seus aplicativos Java. Faz implantação java muito mais suave e user-friendly, como é capaz de encontrar qualquer Java VM instalada por si só.

- site da JSmooth

JSmooth é open source e tem características, mas é muito antiga. O último lançamento foi em 2007.

JexePack

JexePack é uma ferramenta de linha de comando (ótimo para scripting automatizado) que lhe permite empacotar seus aplicativos (arquivos de classe) Java, opcionalmente junto com seus recursos (como GIF / JPG / TXT / etc) , em um único comprimido 32-bit Windows EXE, que é executado usando Java Runtime Environment do Sol. Ambos console e aplicações windowed são suportadas.

- site da JexePack

JexePack é trialware. O pagamento é exigido para uso em produção, e exe arquivos criados com esta ferramenta irá exibir "lembretes" sem pagamento. Além disso, o último lançamento foi em 2013.

InstallAnywhere

InstallAnywhere facilita para os desenvolvedores a criar software de instalação profissional para qualquer plataforma. Com InstallAnywhere, você vai se adaptar às mudanças da indústria rapidamente, chegar ao mercado mais rapidamente e entregar ao cliente uma experiência envolvente. E saber a vulnerabilidade de componentes OSS do seu projeto antes de enviar.

- site da InstallAnywhere

InstallAnywhere é um pacote comercial / empresarial que gera instaladores para programas baseados em Java. Provavelmente é capaz de criar arquivos .exe.

arquivos JAR executáveis ??

Como uma alternativa para arquivos .exe, você pode criar um arquivo JAR que executa automaticamente quando clicou duas vezes, por adicionando um ponto de entrada para o JAR manifesto .


Para mais informações

Uma excelente fonte de informação sobre este tema é o artigo de Excelsior " Converter Javapara EXE -. Por que, Quando, Quando não e como "

Veja também o artigo companheiro " Melhor JAR para Ferramentas EXE conversão, livre e comercial".

Outras dicas

Launch4j

Launch4j é uma ferramenta multi-plataforma para envolver aplicações Java distribuídas como frascos em executáveis ??nativos do Windows leves. O executável pode ser configurado para procurar uma determinada versão JRE ou usar um pacote um, e é possível definir opções de execução, como o tamanho da pilha inicial / max. O invólucro também proporciona uma melhor experiência do usuário através de um ícone do aplicativo, um pré-JRE respingo de tela nativa, um nome de processo personalizado e uma página de download Java no caso do JRE apropriado não pode ser encontrado.

- site da Launch4j

UPDATE: GCJ está morto. Foi oficialmente removida do projeto GCC em 2016. Mesmo antes disso, foi praticamente abandonada por sete anos, e em qualquer caso, foi não suficientemente completas para servir como uma implementação Java alternativa viável.

Vá encontrar outro compilador Java AOT.

GCJ: O GCJ pode compilar o código-fonte Java em código de máquina nativo, incluindo executáveis ??do Windows.

Embora não seja tudo em Java é suportada no GCJ, especialmente os componentes GUI (ver do O Java API são suportados? Como completo é o suporte? Pergunta do FAQ ). Eu não usei GCJ muito, mas a partir do limitado testes que fiz com aplicativos de console, parece bem.

Uma desvantagem de usar GCJ para criar um executável autônomo é que o tamanho do EXE resultante pode ser muito grande. Uma vez eu compilado um aplicativo de console trivial no GCJ e o resultado foi um executável cerca de 1 MB. (Pode haver maneiras de contornar isso que eu não estou ciente. Outra opção seria programas de compressão executáveis.)

Em termos de instaladores de código aberto, o Nullsoft Install System Scriptable é um instalador de scripts. Se você está curioso, existem exemplos contribuiu usuário sobre como detectar a presença de um JRE e instalá-lo automaticamente se o JRE necessário não está instalado. (Só para que você saiba, eu não usei NSIS antes.)

Para obter mais informações sobre o uso NSIS para instalar aplicativos Java, por favor dê uma olhada em minha resposta para a pergunta " Qual é a melhor maneira de distribuir aplicações Java? "

Você poderia fazer um arquivo batch com o seguinte código:

start javaw -jar JarFile.jar

e converter o .bat para um .exe usando qualquer .bat ao conversor .exe.

Estamos usando install4j para instaladores compilação para Windows ou Unix ambientes.

É facilmente personalizável até o ponto em que deseja escrever scripts para ações especiais que não podem ser feitas com diálogos padrão. Mas mesmo que estamos a criação de serviços do Windows com ele, estamos apenas usando componentes padrão.

  • instalador + lançador
  • Windows ou Unix
  • scripts em Java
  • tarefa Ant
  • lotes de painéis padrão personalizáveis ??e acções
  • inclui opcionalmente ou downloads por JRE
  • também pode iniciar serviços do Windows
  • vários idiomas

Eu acho Launch4J é da mesma empresa (apenas o lançador - nenhum instalador).

PS: Infelizmente eu não estou sendo pago para este endosso. Eu apenas gosto dessa ferramenta.

O mais recente Java Web Start foi aprimorado para permitir uma boa operação offline, bem como permitindo "local instalação". Vale a pena olhar em.

EDIT de 2018: Java Web Start não é empacotado com o mais novo JDK da. Oracle está empurrando em direção a uma "implantar seu aplicativo localmente, com um fechado JRE" modelo em seu lugar.

Se você precisa converter seu aplicativo inteiro para código nativo, ou seja, um EXE mais DLLs, há ExcelsiorJET . Eu encontrei ele funciona bem e forneceu uma alternativa para empacotar um JRE.

JSmooth parece estar a fazer um trabalho muito bom.

Eu diria launch4j é a melhor ferramenta para converter um código-fonte java (java) para arquivo .exe Você pode até mesmo agrupar um JRE com ele para a distribuição e o exe pode até ser minimizada. Embora o tamanho da aplicação aumenta, ele garante que o aplicativo irá funcionar perfeitamente, mesmo se o usuário não tiver um JRE instalado. Ele também garante que você é capaz de fornecer o JRE específico necessário para a sua aplicação sem que o usuário precise instalá-lo separadamente. Mas, infelizmente, java perde sua importância. Seu suporte multi-plataforma é totalmente ignorado eo app final só é suportado para janelas. Mas isso não é um grande negócio, se você está atendendo apenas para usuários do Windows.

Você pode usar Janel . Este último funciona como um lançador de aplicativos ou lançador de serviço (disponíveis a partir 4.x).

Como alternativa, você pode usar algum tradutor java-a-c (por exemplo, JCGO ) e compilar os arquivos C gerados para um binário nativo (.exe) para a plataforma de destino.

Eu posso ser perdoado por ser contra a conversão de um programa java para um aplicativo .exe e eu tenho minhas razões. sendo a principal a que um programa java pode ser compilado para um arquivo jar de um monte de IDE. Quando o programa está no formato .jar, ele pode ser executado em várias plataformas ao contrário de .exe que seria executado Apenas em ambiente muito limitado. Sou a favor da ideia de que o Java programas não shoudl ser convertido para Exe menos que seja muito neccesary. Um pode sempre escrever arquivos .bat que executa o programa Java ao mesmo tempo que é um arquivo jar.

se é realmente neccesary para convertê-lo para exe, Jar2Exe conversor faz silenciosamente que e um também pode anexar bibliotecas que são compilados em conjunto com a aplicação principal.

Você pode converter jar para exe usando Jar2Exe . No entanto, você precisa comprar o software. Se você precisar de um software de código aberto eu gostaria de sugerir JSmooth .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top