Applikation mit VM verpacken?

thewulf00

Bekanntes Mitglied
Hallo,

ich frage mal nach, ob es da erfahrungswerte gibt. Die Akzeptanz einer Anwendung erhöht sich ja bekanntlich mit der Einfachheit der Ausführung/Installation.
Während in aktuellen Windows-Versionen i.d.R. eine JVM vorliegt, ist es anderswo vielleicht anders.

Welche Möglichkeiten gibt es denn, aus einer Java-Applikation (als JAR oder als classes) eine binäre, ausführbare Datei zu erhalten? Logisch ist, dass man hier für jedes Betriebssystem eine eigene ausführbare Datei anbieten müsste.

Also wie ist der Weg von meinen Sourcen
- zu einer exe für Windows?
- zu einer bin für Linux?
- zu einer <unbekannt> für Mac?
 

thewulf00

Bekanntes Mitglied
Ja, diesen Link habe ich bereits besucht - Diskutieren wir darüber:

- Es geht mir darum, eine Anwendung so zu starten, dass keine JVM vorhanden sein muss. Also entfallen schonmal die Möglichkeiten 1, 2 und 5.
- Die gesamte JRE mit einzupacken, wäre etwas hart, oder? Wie groß ist da die kleinste Version? Ich betrachte damit mal Möglichkeit 6 als entfallen.

Bleiben die Möglichkeiten 3 (Programme die aus dem Bytecode Maschienencode erstellen) und 4 (Programme, die den JAVA-Quellcode in C++-Quellcode umwandeln):


Programme die aus dem Bytecode Maschienencode erstellen
Diese Methode finde ich äußerst interessant.
- Variante 1: Excelsior JET - Zitat: "Aus meiner Erfahrung her, kann ich nur sagen : "Leute lasst die Finger von sowas!"".
- GNU Java Compiler: Das wäre natürlich toll, aber müsste auch für Windows (und am besten auch für Mac) funktionieren. Leider folgendes Contra: "GJC unterstützt Teile der Java Bibliotheken noch nicht."
Ikaragua merkte für den GJC aber an, dass er keine Programme kompiliert bekam.


Programme, die den JAVA-Quellcode in C++-Quellcode umwandeln
Das wäre auch eine akzeptable Methode, jedoch meide ich C++ aus gutem Grund. :)
Zitat: "Auf Grund der höhen Fehlerdichte nicht zu empfehlen für die produktive Umgebung." <- Das betrübt mich etwas.


Welche Ideen oder Anmerkungen gibt es hier zu sagen? (Zumal der Thread von 2005 und die letzte Änderung von letztem Jahr sind)
 

L-ectron-X

Gesperrter Benutzer
Es hat sich nichts geändert. Die Essenz lautet: Wenn du Plattform abhängigen Code brauchst, programmieren, oder erzeugen willst, solltest du auf C++ umsteigen.
 

thewulf00

Bekanntes Mitglied
Mir geht es nicht um plattformabhängigen Code, sondern um das Distributing/Deployment, ohne die JVM als Voraussetzung angeben zu müssen.
 
M

Marcinek

Gast
Wenn du Java Programme schreiben möchtest, dann brauchst du eine Java-VM.

Feddich.

Liefer sie einfach mit, wenn du nicht möchtest, dass der User sie installiert.

Gruß,

Martin
 

schlingel

Gesperrter Benutzer
Marcinek hat gesagt.:
Liefer sie einfach mit, wenn du nicht möchtest, dass der User sie installiert.

Da hat Marcinek Recht. Liefer einfach einen Installer mit der prüft ob eine JVM vorhanden ist. Falls nicht wird es Zwangs-Installationspunkt (oder auch nur eine Option mit Warnhinweis.) und fertig. (Funktioniert z.B. gut mit dem Installer von NSIS)

Du hast ein schönes File dass du ausliefern kannst und wenn der Benutzer keine JVM installiert hat ist das trotzdem kein Problem.

Inwiefern findest du diese Lösung schlechter als die JAVA-Code in native Anwendungen umzuwandeln?
 

thewulf00

Bekanntes Mitglied
z.B. für Linux-Anwender oder schlimmer, für Linux-Server. Da Server das Minimalprinzip haben, ist es manchmal wünschenswert, keine JVM zu installieren.
 

schlingel

Gesperrter Benutzer
Ich fürchte L-ectron-X hat da wohl recht.

Schnapp dir Qt und schreib damit dein Programm. Die JVM nicht zu installieren ist keine vernünftige Option für ein Java-Programm. Egal in welcher Konfiguration, es wird immer ein grausiger Hack bleiben.
 

TheDarkRose

Gesperrter Benutzer
z.B. für Linux-Anwender oder schlimmer, für Linux-Server. Da Server das Minimalprinzip haben, ist es manchmal wünschenswert, keine JVM zu installieren.

Da ist es aber beschissener eine komische Bastellösung mitzuliefern, als eine JVM aus den Paketquellen zu verlangen, die auch aktuell gehalten wird. Also setze eine JVM einfach als Voraussetzung. Am besten ist es ein .deb oder .rpm Paket für deine Zielplattform zu bauen, die die JVM als Abhängigkeit angibt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Java Applikation an Clients verteilen Tools - Maven, Gradle, Ant & mehr 5
S Webstart Webstart einer Applikation mit einer veralteten JNLP-Datei Tools - Maven, Gradle, Ant & mehr 6
S Java Applikation als Windows Service einrichten Tools - Maven, Gradle, Ant & mehr 23
P Java Applikation auf Server Tools - Maven, Gradle, Ant & mehr 7
F bestehende Applikation auch als Applet lauffähig zu machen Tools - Maven, Gradle, Ant & mehr 9
F Applikation (nicht Applet) im Browser starten Tools - Maven, Gradle, Ant & mehr 9
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
M Brauche Unterstützung bei Chat Applikation Tools - Maven, Gradle, Ant & mehr 1
J Ausführung verhindern Applikation entführt wurde möglich ? Tools - Maven, Gradle, Ant & mehr 3
J Code rennt als Applikation aber nicht als Applet? Tools - Maven, Gradle, Ant & mehr 3
J [JWS] Applikation per Shell-Aufruf mit Parametern Tools - Maven, Gradle, Ant & mehr 2
G Webstart Applikation als Applet in JSP Seite? Tools - Maven, Gradle, Ant & mehr 8
L Applikation Verarb (Server) - Applet als Darstell (Client) Tools - Maven, Gradle, Ant & mehr 5
N Applikation als Applet Tools - Maven, Gradle, Ant & mehr 3
M Applikation --> Applet Tools - Maven, Gradle, Ant & mehr 4
T Inhalt (=ehem. Applikation) in Applet unsichtbar Tools - Maven, Gradle, Ant & mehr 5
B Eine Applikation in ein Applet umwandeln Tools - Maven, Gradle, Ant & mehr 4
A Applikation vs. Applet Tools - Maven, Gradle, Ant & mehr 3
earlgrey_tea JRE in jar verpacken eclipse Tools - Maven, Gradle, Ant & mehr 8

Ähnliche Java Themen

Neue Themen


Oben