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
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: