Hoe maak ik een uitvoerbaar Java-programma?

Ik heb een Java-programma in JCreator geprogrammeerd, alles is klaar, maar ik wil er een uitvoerbaar bestand van maken, dwz ik wil het programma niet moeten uitvoeren door de java-klassen te laden en te compileren en vervolgens uit te voeren, maar in plaats daarvan heb ik het als een op zichzelf staand uitvoerbaar bestand.

Wat is de snelste manier om dit te doen?


Antwoord 1, autoriteit 100%

U kunt de jar-toolgebruiken gebundeld met de SDK en maak een uitvoerbare versie van het programma.

Dit is hoe het moet.

Ik post de resultaten vanaf mijn opdrachtprompt omdat het gemakkelijker is, maar hetzelfde zou moeten gelden bij het gebruik van JCreator.

Maak eerst uw programma:

$cat HelloWorldSwing.java
    package start;
    import javax.swing.*;
    public class HelloWorldSwing {
        public static void main(String[] args) {
            //Create and set up the window.
            JFrame frame = new JFrame("HelloWorldSwing");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JLabel label = new JLabel("Hello World");
            frame.add(label);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
    }
    class Dummy {
        // just to have another thing to pack in the jar
    }

Heel eenvoudig, geeft alleen een venster weer met “Hello World”

Compileer het dan:

$javac -d . HelloWorldSwing.java

Er zijn twee bestanden gemaakt in de “start”-map Dummy.classen HelloWorldSwing.class.

$ls start/
Dummy.class     HelloWorldSwing.class

Volgende stap, maak het jar-bestand aan. Elk jar-bestand heeft een manifest-bestand, waar attributen die betrekking hebben op het uitvoerbare bestand zijn.

Dit is de inhoud van mijn manifestbestand.

$cat manifest.mf
Main-class: start.HelloWorldSwing

Beschrijf gewoon wat de hoofdklasse is (die met de openbare statische void-hoofdmethode)

Zodra het manifest gereed is, wordt het uitvoerbare bestand van de jar aangeroepen.

Het heeft veel opties, hier gebruik ik -c -m -f ( -c om jar te maken, -m om het manifestbestand op te geven, -f = het bestand moet de naam krijgen.. ) en de map die ik wil naar pot.

$jar -cmf manifest.mf hello.jar start

Hiermee wordt het .jar-bestand op het systeem gemaakt

U kunt later gewoon dubbelklikken op dat bestand en het zal werken zoals verwacht.

Om het .jar-bestand in JCreator te maken, hoef je alleen maar het menu “Tools” te gebruiken, jar te maken, maar ik weet niet zeker hoe het manifest daar gaat.

Hier is een video die ik heb gevonden over: Een Jar-bestand maken in Jcreator.

Ik denk dat je verder kunt gaan met de andere links die in deze thread zijn gepost als je eenmaal bekend bent met deze “.jar”-aanpak.

U kunt ook jnlp( Java Network Launcher Protocol ) gebruiken.


Antwoord 2, autoriteit 26%

Als je Eclipse gebruikt, kun je de onderstaande 7 stappen proberen om een .exe-bestand voor Windows te krijgen.

Je hebt nu een JAR-bestand. Gebruik java -jar path/jarname.jar om uit te voeren.


Als je dit naar .exe wilt converteren, kun je http:// proberen sourceforge.net/projects/launch4j/files/launch4j-3/

STAP7:
Geef het .xml-bestand een toepasselijke naam en klik op “Opslaan”. Het .xml-bestand is standaard, maak je er geen zorgen over. Uw uitvoerbare bestand wordt nu aangemaakt!


Antwoord 3, autoriteit 17%

Ik weet niet precies wat je bedoelt.

Maar ik neem aan dat je een van de twee dingen bedoelt.

  • U wilt een uitvoerbaar .jar-bestand maken

Eclipse kan dit heel gemakkelijk. Bestand –> Exporteer en maak een jar en selecteer de juiste Main-Class en het zal de .jar voor je genereren. In Windows moet u .jar mogelijk associëren met de Java-runtime. oftewel Houd shift ingedrukt, klik met de rechtermuisknop op “openen met” blader naar uw jvm en associeer deze met javaw.exe

  • maak een echt .exe-bestand, dan moet je een extra bibliotheek gebruiken, zoals

http://jsmooth.sourceforge.net/of http://launch4j.sourceforge.net/zal een native .exe-stub maken met een mooi pictogram dat in wezen uw app opstart. Ze zoeken zelfs uit of uw klant geen JVM heeft geïnstalleerd en vragen u om er een te kopen.


Antwoord 4, autoriteit 7%

Navigeer op de opdrachtregel naar de hoofdmap van de Java-bestanden die u uitvoerbaar wilt maken.

Gebruik deze opdracht:

jar -cvf [name of jar file] [name of directory with Java files]

Hiermee wordt een map met de naam META-INF aangemaakt in het jar-archief. In deze META-INF staat een bestand genaamd MANIFEST.MF, open dit bestand in een teksteditor en voeg de volgende regel toe:

Main-Class: [fully qualified name of your main class]

gebruik dan dit commando:

java -jar [name of jar file]

en je programma wordt uitgevoerd 🙂


Antwoord 5, autoriteit 4%

Bekijk WinRun4J. Het is alleen voor Windows, maar dat komt omdat Unix uitvoerbare scripts heeft die (voor de gebruiker) op bakken lijken. Je kunt WinRun4J ook gemakkelijk aanpassen om op Unix te compileren.

Het vereist wel een configuratiebestand, maar nogmaals, compileer het opnieuw met hardgecodeerde opties en het werkt als een configuratieloze exe.


Antwoord 6, autoriteit 4%

Jexecutable kan Windows exe voor Java-programma’s maken. Het sluit de potten in het exe-bestand in en u kunt het als een Windows-programma uitvoeren.


Antwoord 7, autoriteit 3%

U kunt gcj op compileren uw Java-programma in de native code.
Op een bepaald moment samengesteld ze Eclipse in een Native-versie .


8, Autoriteit 3%

Bekijk launch4j


9

Schrijf een script en maak het uitvoerbaar. Het script moet eruit zien als wat u normaal gesproken gebruikt bij de opdrachtregel:

java YourClass

Hiermee wordt ervan uitgegaan dat u uw .java-bestanden al hebt gecompileerd en dat de Java uw .class-bestanden kan vinden. Als Java uw .class-bestanden niet kan vinden, wilt u misschien kijken naar de -classpath-optie of het instellen van de variabele van uw klassenpadomgeving.


10

Zoals eerder gesuggereerd, kunt u naar Launch4j kijken om het uitvoerbare bestand te maken voor uw JAR-bestand. Ook is er iets dat “JEXPACK” wordt genoemd dat een .exe-wrapper rond uw JAR-bestand kan plaatsen, zodat u het opnieuw kunt verdelen (opmerking: de client zou sowieso een JRE nodig hebben om het programma op zijn pc te gebruiken)
Exes gemaakt met GCJ hebben deze afhankelijkheid niet, maar het proces is een beetje meer betrokken.

Other episodes