Plattformunabhängiges Deployment für simple Zwecke

muhazz

Mitglied
Hallo liebe Java-Gemeinde,

ich beschäftige mich nun schon seit einigen Jahren immer wieder mit dem Programmieren in verschiedenen Sprachen, in der letzten Zeit insbesondere mit Java. Nun bin ich das erste Mal in einer Situation, wo ich geschriebene Software für Kunden bereitstellen muss. Ich habe zu diesem Thema Einiges im Internet gelesen - es scheint ja sehr vielfältige Möglichkeiten zu geben - konnte aber bisher trotzdem keine zufriedenstellende Lösung finden.
Nun wende ich mich mit zwei Bitten an euch: einmal einige grundlegende Fragen zum Verständnis und dann natürlich eine ganz konkrete Empfehlung für meine Bedürfnisse.

Die Anforderungen an die Art des Software-Deployments sind eigentlich recht simpel:
Die Software soll vom Endbenutzer unter den gängigen Betriebssystemen Windows, Linix und Mac OS in der jeweils üblichen Weise aufgerufen werden können (.exe, .bin und...ja, und was eigentlich unter Mac OS?). Das soll auch ohne Internetzugang geschehen können. Optimal wäre, wenn die JRE beim Kunden nicht installiert sein müsste - hier könnte man aber am ehesten Abstriche machen.
Außerdem möchte ich keine kostenpflichtigen Programme verwenden, Trial-Versionen nur, wenn keine zeitlichen Einschränkungen bestehen und keine Hinweise/Werbung beim Benutzer sichtbar werden.


Vorab: Ich habe sowohl den FAQ-Eintrag als auch einige weitere Artikel im Internet, u.A. diesen Artikel, gelesen.

Für mich sieht es so aus, als wären "Java-Aware Setup Authoring Tools" die optimale Lösung und Programme wie install4j, InstallShield, InstallAnywhere,... die perfekten Anwendungen dazu - allerdings steht der Preis bei allen natürlich in keinem Verhältnis zu meinem Projekt.
Allerdings ist mir der Unterschied zwischen "Java-Aware Setup Authoring Tools" und simplen "Wrappern" noch nicht 100%-ig klar. Worin ebsteht der Unterschied denn genau und wie macht er sich dann konkret bemerkbar (für mich und den Endbenutzer)? Besteht er evtl. nur darin, dass die Setup-Generatoren zusätzlich noch weitere Dinge tun können wie Verknüpfungen anlegen usw?

Wenn ich das richtig verstehe, erfüllt z.B. IzPack alle meine Forderungen bis auf die Unabhängigkeit von einer vorinstallierten JRE und fällt unter die Kategorie der Setup-Generatoren. Das Programm "Launch4j" hingegen fällt nach dem oben aufgeführten Artikel in die Kategorie der "Wrapper" und hat den inaktzeptablen Nachteil, nur für Windows zu funktionieren, und außerdem benötigt man hier meiner Meinung nach wieder eine installierte JRE. Stimmt das alles so? Und, angelehnt an die Frage oben, wo ist denn der Unterschied, wenn man von der Plattform(un)abhängigkeit absieht (die bei Launch4j glaube ich ja theoretisch durchaus auch vorhanden sein könnte).

Dann gibt es ja noch die Möglichkeit, Java Quellcode oder Bytecode in Maschinencode zu kompilieren mit einem sog. Native Compiler, richtig? Da blieb mir aber unklar: Muss eine JRE beim Anwender installiert sein? Meine Vermutung: Nein, alles kann mitgeliefert werden, dafür wird aber die Datei für den Anwender wesentlich größer.
An Tools dazu konnte ich bisher nur den GCJ ausfindig machen, der ja allerdings nur für Windows geeignet ist. Gibt es noch Anwendungen für andere Betriebssysteme? Und kann ich versch. Betriebssysteme einfach einzeln abhandeln und mir praktisch eine .exe, eine .bin und eine weitere Mac OS-Datei machen, oder sollte ich nach einer Software-Lösung für alles suchen?

So, das waren viele Fragen zu später Stunde. Für Anregungen und Hilfestellungen wäre ich sehr dankbar.

Viele Grüße und schonmal vielen Dank für's Lesen!
muhazz
 
Zuletzt bearbeitet:
G

Gast2

Gast
Du wirst um einzellösungen für jedes Betriebssystem nicht herumkommen wenn du die nativen "Binaries" vorgaukeln willst.

Meine Frage: Wieso? Was ist das Problem einfach die jar auszuliefern? Das JRE kannst du ja dann dazupacken wenns sein muss.
 

Wildcard

Top Contributor
Dann gibt es ja noch die Möglichkeit, Java Quellcode oder Bytecode in Maschinencode zu kompilieren mit einem sog. Native Compiler, richtig?
Das ist eine ganz schlechte Idee...
Fast jeder Rechner hat heutzutage eine JRE installiert. Eine jar auszuliefern ist in den meisten Fällen die einfachste Variante. Wenn du es besonders komfortabel und DAU freundlich haben willst, dann verwende Java Webstart.
Link im Browser anklicken -> Programm wird heruntergeladen -> legt optional einen Startmenü Eintrag/ein Shortcut an -> Programm startet.
 

muhazz

Mitglied
Schonmal danke für die Antworten.
Das ist eine ganz schlechte Idee...
Fast jeder Rechner hat heutzutage eine JRE installiert.
Hmm, das habe ich vermutet. Java WebStart wurde als Alternative allerdings explizit ausgeschlossen.

Was passiert denn genau, wenn ich IzPack verwende? IzPack erstellt einen Installer für mein Programm, der sich auf versch. Betriebssystemen ausführen lässt, wenn eine JRE installiert ist. Nur was ist dann das Ergebnis, d.h. wie startet der Benutzer das Programm letztendlich?

Viele Grüße,m
muhazz
 

Wildcard

Top Contributor
Nur was ist dann das Ergebnis, d.h. wie startet der Benutzer das Programm letztendlich?
Das Ergebnis ist was du vorher in den Installer gepackt hast. Der Benutzer startet das Programm über eine Jar, Shell Script, oder wrapper binary die du zur Verfügung stellst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Oneixee5 Maven Deployment eines Spring-Boot.jar Tools - Maven, Gradle, Ant & mehr 0
P Deployment kein zugriff auf Web-inf tomcat 8 und 7 Tools - Maven, Gradle, Ant & mehr 2
S Binding-Problem von Bibliotheken bei Deployment Tools - Maven, Gradle, Ant & mehr 0
V Maven Deployment eines war zu JBoss Tools - Maven, Gradle, Ant & mehr 2
S Maven Arquillian braucht fast eine Minute für ein Deployment Tools - Maven, Gradle, Ant & mehr 5
G Maven Tomcat und Web Deployment Assembly Tools - Maven, Gradle, Ant & mehr 10
Guybrush Threepwood Deployment auf Mac: Update von App Bundles Tools - Maven, Gradle, Ant & mehr 3
D Maven Deployment mit profilabhängigem Dateinamen Tools - Maven, Gradle, Ant & mehr 2
A ProcessBuilder kann nach Deployment File nicht finden Tools - Maven, Gradle, Ant & mehr 4
J Deployment - wie am Besten vorgehen? Tools - Maven, Gradle, Ant & mehr 13
D artefakt deployment aus m2eclipse heraus? Tools - Maven, Gradle, Ant & mehr 14
M Deployment und Konfiguration mit Tomcat Tools - Maven, Gradle, Ant & mehr 8
G Deployment auf Linux Tools - Maven, Gradle, Ant & mehr 4
W git - Ordner für Push-Befehl sperren Tools - Maven, Gradle, Ant & mehr 2
von Spotz Gradle: Dependencies und Plugins vom root Projekt für die child-Projekte verfügbar machen Tools - Maven, Gradle, Ant & mehr 5
8u3631984 JAR aus anderem Module verwenden für Docker Image Tools - Maven, Gradle, Ant & mehr 0
M Was ist besser für den Anfang, Maven oder Gradle? Tools - Maven, Gradle, Ant & mehr 6
Avalon Open Source Alternative für Prometheus gesucht Tools - Maven, Gradle, Ant & mehr 3
N Gradle für Tests 2 Frameworks Tools - Maven, Gradle, Ant & mehr 2
F Setup für meine .Jar Tools - Maven, Gradle, Ant & mehr 4
F Übergreifende Deploymentlösung für Tomcat, Websphere,... Tools - Maven, Gradle, Ant & mehr 0
A Maven Standard/User-Libraries für alle Eclipse-Projekte bereitstellen Tools - Maven, Gradle, Ant & mehr 3
reibi Maven Projekt für Zusatzdaten Tools - Maven, Gradle, Ant & mehr 0
HaukeG Maven Suche nach Ideen für Realisierung eines eigenen Plugin Tools - Maven, Gradle, Ant & mehr 3
maestr0 Maven Plugin Entwicklungs Buch für Einsteiger Tools - Maven, Gradle, Ant & mehr 8
D property-Konfigurationsdatei für webApp(war) - wohin) - /conf/Catalina/<host>/ ? Tools - Maven, Gradle, Ant & mehr 9
K Jenkins Konfiguration für einen multi-module Maven Projekt Tools - Maven, Gradle, Ant & mehr 2
fastjack Maven: eine Jar für mehrere Teilprojekte Tools - Maven, Gradle, Ant & mehr 5
Guybrush Threepwood Installationsumgebung für Mac Tools - Maven, Gradle, Ant & mehr 2
D eine Abhängigkeit für viele jars Tools - Maven, Gradle, Ant & mehr 4
P Installer für Anwendung bauen Tools - Maven, Gradle, Ant & mehr 4
P Maven Tutorial für Anfänger Tools - Maven, Gradle, Ant & mehr 5
I Ratschläge für eine automatisierte Installation benötigt Tools - Maven, Gradle, Ant & mehr 3
slawaweis Ant Trennstrich in Attributen für eigene Ant Tasks Tools - Maven, Gradle, Ant & mehr 2
K Ant Source in JAR mitliefern für Debugging Tools - Maven, Gradle, Ant & mehr 3
M Maven Source Folder für "Examples" Tools - Maven, Gradle, Ant & mehr 2
L Buckminsterbeispiele für RCP Tools - Maven, Gradle, Ant & mehr 5
F Installer der nur für Benutzer installiert Tools - Maven, Gradle, Ant & mehr 7
-horn- Pures JRE ohne Ballast? Für BOINC-Projekt Tools - Maven, Gradle, Ant & mehr 4
D verschiedene Versionen "builden" für Test und Lifebetrieb Tools - Maven, Gradle, Ant & mehr 14
D maven config für nexus Tools - Maven, Gradle, Ant & mehr 8
R Temporärer speicherort für Applets Tools - Maven, Gradle, Ant & mehr 33
R [Maven2] immer Build failed für Projekt Tools - Maven, Gradle, Ant & mehr 10
Guybrush Threepwood Lizenz für Closed Source Tools - Maven, Gradle, Ant & mehr 6
C Property-Datei für Web Start Tools - Maven, Gradle, Ant & mehr 2
C Ant target für Eclipse .classpath Tools - Maven, Gradle, Ant & mehr 6
A Muss ich für jeden JBoss deployen? Tools - Maven, Gradle, Ant & mehr 3
J keytool um für Tomcat keystore file zu erstellen Tools - Maven, Gradle, Ant & mehr 1
M Autostart unter Windows für Java Aplikation Tools - Maven, Gradle, Ant & mehr 10
X Applets für Datenbankzugriff signieren Tools - Maven, Gradle, Ant & mehr 8
D Bibliotheken für Applet Tools - Maven, Gradle, Ant & mehr 5
I Fehler beim Signieren der JAR Dateien für Webstart Tools - Maven, Gradle, Ant & mehr 1
M Alternative Grafik für nicht-javafähige Browser Tools - Maven, Gradle, Ant & mehr 12
G Thread für bewegte Zeichnung wird nicht gestartet Tools - Maven, Gradle, Ant & mehr 3
C Applet für kurze Zeit nach dem starten anhalten Tools - Maven, Gradle, Ant & mehr 2
F Für Read Zugriff auf Server signieren? Tools - Maven, Gradle, Ant & mehr 8
K Ein Objekt anhalten für eine bestimmte Zeit Tools - Maven, Gradle, Ant & mehr 2
D Schon wieder eine Frage für meinen Editor Tools - Maven, Gradle, Ant & mehr 10
M Java-Applet Unterstützung in Browsern (für Java 1.1.8) Tools - Maven, Gradle, Ant & mehr 5
M Applet für Onlinezahlungen? Tools - Maven, Gradle, Ant & mehr 2
T Menü für WebSite in Applet Tools - Maven, Gradle, Ant & mehr 9
T Separaten Thread für GUI bei Applets? Tools - Maven, Gradle, Ant & mehr 5
S Schnittstelle für Applet von außen Tools - Maven, Gradle, Ant & mehr 4
S showDocument() für eine Rollover-Button-Klasse Tools - Maven, Gradle, Ant & mehr 2
L Hintergrundbild für Applet Tools - Maven, Gradle, Ant & mehr 3
J Editor für ".class"-Dateien? Tools - Maven, Gradle, Ant & mehr 3
A Mehr Speicher für Applet? Tools - Maven, Gradle, Ant & mehr 7
O Horizontales Menü für Homepage Tools - Maven, Gradle, Ant & mehr 3
A Sicherheitrichtlinien für Applets Tools - Maven, Gradle, Ant & mehr 2
S Buttons erstellen ... schwer für anfänger ... bitte helft Tools - Maven, Gradle, Ant & mehr 4

Ähnliche Java Themen

Neue Themen


Oben