Een java-programma compileren naar een uitvoerbaar

Mogelijk duplicaat:
Hoe maak ik een .exe voor een Java-programma?

Ik heb zojuist een eenvoudig programma gemaakt met Eclipse en ik wil het compileren tot een uitvoerbaar bestand, maar ik weet gewoon niet hoe ik het moet doen.


Antwoord 1, autoriteit 100%

U kunt het .jar-bestand op de volgende manieren naar .exe converteren:

(bron: viralpatel.net)

1- JSmooth .exe-wrapper:

JSmooth is een Java Executable Wrapper. Het maakt native Windows-opstartprogramma’s (standaard .exe) voor uw java-toepassingen. Het maakt Java-implementatie veel soepeler en gebruiksvriendelijker, omdat het elke geïnstalleerde Java-VM zelf kan vinden. Als er geen VM beschikbaar is, kan de wrapper automatisch een geschikte JVM downloaden en installeren, of gewoon een bericht weergeven of de gebruiker doorverwijzen naar een website.

JSmooth biedt een verscheidenheid aan wikkels voor uw Java-toepassing, elk met hun eigen gedrag: Kies uw smaak!

Download: http://jsmooth.sourceforge.net/

2- JarToExe 1.8
Jar2Exe is een tool om jar-bestanden om te zetten in exe-bestanden.
Hieronder volgen de belangrijkste functies zoals beschreven op hun website:

  • Kan “Console”, “Windows GUI”, “Windows Service” drie soorten exe-bestanden genereren.
  • Gegenereerde exe-bestanden kunnen programmapictogrammen en versie-informatie toevoegen.
  • Gegenereerde exe-bestanden kunnen Java-programma’s versleutelen en beschermen, er worden geen tijdelijke bestanden gegenereerd wanneer het programma wordt uitgevoerd.
  • Gegenereerde exe-bestanden bieden ondersteuning voor systeemvakpictogrammen.
  • Gegenereerde exe-bestanden bieden ondersteuning voor logboeken voor recordsysteemgebeurtenissen.
  • Gegenereerde exe-bestanden voor Windows-services kunnen zichzelf installeren/verwijderen en ondersteunen het pauzeren/doorgaan van de service.
  • Nieuwe release van x64-versie, kan 64-bits executives maken. (18 mei 2008)
  • Zowel de wizardmodus als de opdrachtregelmodus worden ondersteund. (18 mei 2008)

Download: http://www.brothersoft.com/jartoexe-75019.html

3- Uitvoerder

Verpak uw Java-toepassing als een jar en Executor verandert de jar in een Windows exe-bestand, niet te onderscheiden van een native toepassing. Dubbelklikken op het exe-bestand zal de Java Runtime Environment oproepen en uw toepassing starten.

Download: http://mpowers.net/ uitvoerder/

EDIT: de bovenstaande link is verbroken, maar hier is de pagina (met werkende download) van het internetarchief. http://web.archive.org/web/20090316092154/ http://mpowers.net/executor/

4- Geavanceerd installatieprogramma
Met Advanced Installer kunt u binnen enkele minuten Windows MSI-installaties maken. Dit heeft ook ondersteuning voor Windows Vista en helpt ook bij het maken van MSI-pakketten in andere talen.
Downloaden: http://www.advancedinstaller.com/
Laat me andere tools weten die je hebt gebruikt om JAR naar EXE te converteren.


Antwoord 2, autoriteit 26%

In jouw situatie zou ik GCJ (GNU Compiler for Java) gebruiken. Het is een AOT-compiler (voorlopig) voor Java, net zoals GCC voor C is. In plaats van code te interpreteren of tussenliggende Java-code te genereren die op een later tijdstip door de Java VM kan worden uitgevoerd, genereert het machinecode.

GCJ is beschikbaar op bijna elk Linux-systeem via de bijbehorende pakketbeheerder (indien beschikbaar). Na de installatie moet de GCJ-compiler aan het pad worden toegevoegd, zodat deze via de terminal kan worden aangeroepen. Als u Windows gebruikt, kunt u GCJ downloaden en installeren via Cygwin of MinGW.

Ik zou echter sterk aanbevelen dat je je broncode herschrijft voor een andere taal die bedoeld is om te worden gecompileerd, zoals C++. Java is bedoeld als een draagbare, geïnterpreteerde taal. Het compileren naar machinecode is volledig in strijd met waar de taal voor is ontwikkeld.


Antwoord 3, autoriteit 13%

Ik gebruik launch4j

ANT-commando:

<target name="jar" depends="compile, buildDLLs, copy">
    <jar basedir="${java.bin.dir}" destfile="${build.dir}/Project.jar" manifest="META-INF/MANIFEST.MF" />
</target>
<target name="exe" depends="jar">
    <exec executable="cmd" dir="${launch4j.home}">
        <arg line="/c launch4jc.exe ${basedir}/${launch4j.dir}/L4J_ProjectConfig.xml" />
    </exec>
</target>

Antwoord 4, autoriteit 4%

Daar gebruik ik meestal een bat-script voor. Dit is wat ik meestal gebruik:

@echo off
set d=%~dp0
java -Xmx400m -cp "%d%myapp.jar;%d%libs/mylib.jar" my.main.Class %*

De %~dp0 extraheert de map waar de .bat zich bevindt. Hierdoor kan de vleermuis de locaties van de potten vinden zonder speciale omgevingsvariabelen of de instelling van de PATH-variabele.

EDIT: Aanhalingstekens toegevoegd aan het klassenpad. Anders, zoals Joey zei, “kunnen er leuke dingen gebeuren met spaties”


Antwoord 5

We hebben geconstateerd dat Jsmooth goed werkt en gemakkelijk te scripten is met ant onder Linux. Misschien wil je one-jar gebruiken (ook gemakkelijk scriptbaar met ant onder Linux) om eerst een applicatie met meerdere bestanden in een enkele jar te verzamelen.

We hadden vooral de gemakkelijke implementatie van de EXE nodig in combinatie met de “hey, you need Java version X, go here to download”-faciliteiten.

(maar wat je waarschijnlijk nodig hebt, is de “Uitvoerbare pot” / “Uitvoerbare pot” faciliteit in standaard Java).


Antwoord 6

Er is een handvol programma’s die dat doen… TowerJ is er een die in je opkomt (ik laat je er op Googlen) maar het kost veel geld.

De meest bruikbare referentie voor dit onderwerp die ik heb gevonden is op: http://mindprod.com/jgloss /nativecompiler.html

het vermeldt een paar andere producten en alternatieven om hetzelfde doel te bereiken.


Antwoord 7

Wat u kunt doen, is een .bat maken die het gemaakte .jar-bestand uitvoert en controleert of er een JRE aanwezig is.

Van Mitch nuttige link (bron)

java -classpath myprogram.jar de.vogella.eclipse.ide.first.MyFirstClass

Dit kan worden gebruikt in uw batch…

Other episodes