2010-02-18 1 views
9

Ich hätte gerne eine Java-Anwendung, die leicht gestartet werden kann.Wie erstelle ich eine Java-Anwendung, die mit einem Klick ausgeführt werden kann?

Bisher habe ich es geschafft, eine JAR-Datei zu erstellen, aber ich sehe noch keine Vorteile. Bevor ich meine Anwendung mit "java HelloWorldSwing" starte, benutze ich nun "java -jar HelloWorldSwing.jar" (was noch komplizierter ist als der vorherige Befehl und, soweit ich das verstanden habe, erfordert die Verwendung einer jar-Datei das Vorhandensein von * .mf-Datei im selben Verzeichnis).

Ich möchte eine der beiden folgenden Situationen haben:

  1. Nur eine einzige Datei, die auf ein anderes Betriebssystem kopiert werden können und dass das Projekt in einem nur durch Klick auf diese Datei gestartet werden kann Datei-Browser (im Moment, wenn ich auf meine JAR-Datei klicke, beginnt Ubuntu, das Archiv zu extrahieren (weil jar ein Archiv ist, weiß ich)).

  2. Erstellen Sie ein Piktogramm, das auf einen Desktop gelegt werden kann, und klicken Sie auf, was initiiert mein Java-Programm.

+2

Nein, Ihre Manifest-Datei sein „soweit ich verstanden, die Verwendung einer JAR-Datei Anwesenheit * .mf Datei im selben Verzeichnis erfordert“ sollte Mit der Befehlszeilenoption 'jar' -m manifestfile ' – Powerlord

Antwort

2

Hier einige Links, die u helfen kann ..

JSmooth ist eine Java-Executable Wrapper. Es schafft nativen Werfer Windows-

http://jsmooth.sourceforge.net/ 

plattformübergreifende Java ausführbare Wrapper

http://launch4j.sourceforge.net/ 


http://www.captain.at/programming/java/executable-java-application.php 
0

Sie können eine ausführbare JAR-Datei erstellen, wie beschrieben hier:

http://csdl.ics.hawaii.edu/~johnson/613f99/modules/04/jar-files.html

Anschließend können Benutzer im Dateibrowser darauf klicken und die Hauptklasse starten, sofern das Betriebssystem und die Sicherheitseinstellungen des Benutzers dies zulassen.

+0

in das Jar selbst eingeben. Ich folgte einfach der Schritt-für-Schritt-Anleitung. Am Ende bekam ich eine JAR-Datei, die ich erfolgreich ausführen konnte. Wenn ich jedoch den Ordner mit der JAR-Datei in meinem Dateibrowser öffne, sehe ich die JAR-Datei als Archiv. Doppelklicken Sie auf das Archiv, um die Extraktion des Archivs zu starten. – Roman

+0

Leider können Sie nichts wirklich über Dateibrowser tun, die sich weigern, Dinge automatisch auszuführen (was schließlich oft eine sehr gute Idee ist). Selbst wenn Sie die gesamte JRE und Ihr Programm in eine riesige .EXE-Datei kompiliert haben, kann es sein, dass der Dateimanager die Ausführung der Anwendung verweigert, da es sich um eine "unsichere heruntergeladene Datei" handelt, sofern Sie Ihre Anwendung nicht vom Betriebssystemhersteller zertifizieren lassen. Es ist ein Wettrüsten, das letztlich niemand gewinnen kann. –

9

Erstellen eines Glas ohne Abhängigkeiten ausführbare Datei ist relativ einfach. Sie müssen im Wesentlichen nur die zu verwendende Hauptklasse in der MANIFEST angeben. Es kann dann mit java -jar ExecutableJar.jar gestartet werden, aber die meisten Betriebssysteme unterstützen in diesem Fall einen Doppelklick.

Erstellen eines Glas, das auf andere Glas ausführbare Datei abhängt, ist komplizierter. Sie können den Klassenpfad in der MANIFEST angeben, aber es bedeutet immer noch, dass Sie mehr als ein JAR kopieren müssen, um Ihre App zu verteilen. Ein anderer Weg ist das "Packen" des entsprechenden Glases in das Hauptglas.

Sie können all dies mit maven und maven-assembly-plugin tun. Verwenden Sie die jar-with-dependencies vorkonfigurierte descriptor.

<archive> 
    <manifest> 
     <mainClass>org.company.MyClass</mainClass> 
    </manifest> 
</archive> 

EDIT: Ein komplettes pom.xml in this question gefunden werden kann

<configuration> 
    <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
    </descriptorRefs> 
</configuration> 

Die Hauptklasse kann mit so etwas wie angegeben werden.

0

Sie müssen ein ausführbares Jar erstellen, in dem die Hauptklasse (dh eine öffentliche Klasse mit der Methode main()) in der Manifestdatei des Jars als Main-Class angegeben ist. Also, wenn prople doppelklicken Sie es oder geben Sie: jar "Ihr Jar-Name" in der Befehlskonsole, dann werden sie es ausgeführt werden.

2

Launch4J ermöglicht es Ihnen, ein JAR auf vielen Plattformen startfähig zu machen.

2

Es WebStart genannt wird,

Allerdings ist es nicht perfekt Ihre Beschreibung passen. Es bietet keine selbstverpackte Lösung, die existieren sollte.

PS. Ich persönlich glaube, ausführbare Jar ist ein Witz, Sie können nicht die Vmargs kontrollieren, kann nicht ein gutes Symbol haben, und Sie können nicht einmal wissen, es ist ausführbar, bis es entpackt wird und versuchen, ausgeführt werden.