Gibt es eine Möglichkeit beim erstellen der JAR-Datei nicht nur mit einer bestimmten Java-Version zu kompilieren, sondern auch diese Java-Version mit einzupacken, sodass immer diese Java-Version genommen wird unabhängig welche Java-Version und ob der Kunde überhaupt Java installiert hat.
Das wird besonders dann interessant wenn nur noch Java 10 heruntergeladen werden kann und nichts dazu kompatibel ist, damit mit Java8 weitergemacht werden kann.
Es gibt die Möglichkeit, einfach ein JRE mit deiner Anwendung mitzuliefern und du kannst dann eine .bat oder .sh Datei mitliefern, die deine Anwendung dann per mitgeliefertem JRE ausführt.
Andere Lösungen betten deine Anwendung und das JRE in eine native Executable (.exe Datei unter Windows) ein oder erzeugen einen Ordner, wo alles drin ist, den du dann zippen kannst.
Siehe hierzu z.B. http://launch4j.sourceforge.net/ oder die Möglichkeit ab Java 9 mit Hilfe von dem JDK-eigenen jlink Tool ein Bundle deiner Anwendung samt gestrippedtem JRE zu bauen. Das setzt voraus, dass deine Anwendung und alle ihre Abhängigkeiten Java 9 Jigsaw Module sind.
Dann gibt es noch https://github.com/libgdx/packr, welches auch von libGDX verwendet wird.
Oder, wenn es sich um eine JavaFX Anwendung handelt, dann gibt es auch noch https://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm#BCGIBBCI.
Das wird besonders dann interessant wenn nur noch Java 10 heruntergeladen werden kann und nichts dazu kompatibel ist, damit mit Java8 weitergemacht werden kann.
Stattdessen könnte man aber auch dran arbeiten, das ganze zu 10 kompatibel zu machen
Der Großteil läuft ohne größere Anpassungen, und irgendwann muss man es doch machen...
Stattdessen könnte man aber auch dran arbeiten, das ganze zu 10 kompatibel zu machen
Der Großteil läuft ohne größere Anpassungen, und irgendwann muss man es doch machen...
Das ist ein Standpunkt, den ein Entwickler nicht einnehmen sollte. Der Grund liegt meiner Erfahrung nach darin, dass die IT-Leitung und ihre Entwickler die Notwendigkeit einer Migration nicht nach oben kommuniziert bekommen und sich kein Gehör verschaffen, so dass solche Anpassungen entsprechend priorisiert werden können.
Meist bekommt schon das mittlere Management einfach nichts mehr von solchen notwendigen Migrationen mit, weil das untere Management oder die IT-Leitung entweder:
a) keine Ahnung hat und die Dinge selber nicht richtig einschätzen kann (ist bei uns der Fall)
b) sich nicht traut, gegenüber dem mittleren Management (welches möchte, dass fachliche Anpassungen fertig werden) solche Dinge anzusprechen (ist bei uns auch der Fall)
Das ist doch totaler Blödsinn. Ich kann selbst mit Java6 genauso gute Software schreiben wie mit Java10. Ich brauche kein Java10 um gute Software zu schreiben es macht es nur u.U. etwas leichter weil ich mehr Funktionalität habe. Die Software wird selber wird aber nicht einen Deut besser nur weil sie diese neuen Funktionen benutzt. Und warum sollte die Software veraltet sein wenn sie in Java6 geschrieben ist und trotzdem weiter entwickelt und gewartet wird? Nur eben mit Java6. Ist doch vollkommen legitim auf einem System weiter zu entwickeln das sich bewährt hat. Nicht alles neue ist auch autmatisch besser. Aber das wirst du auch noch lernen junger Padavan
Ob "man" es braucht oder nicht, hängt teilweise von weit anderen Faktoren ab, z. B. der Einstellung des Kunden. Da gibt es von "muss auf IE 8 laufen" bis zu "oh, ein neuer Patch-Level - das muss »aus Sicherheitsgründen« so schnell wie möglich umgestellt werden" (wir reden von Software, die im Firmennetz installiert wird...)
Japp! Und wenn dann noch ein Softwarearchitektur- und Sicherheitsaudit vom Kunden durch einen Drittdienstleister bestellt wird, und der sieht, dass man Software einsetzt, die schon seit sechs Jahren End-of-Life ist und möglicherweise Sicherheitslücken aufweist, wird der Kunde nicht erfreut sein. (auch schon gerade selber erlebt)
Das ist doch totaler Blödsinn. Ich kann selbst mit Java6 genauso gute Software schreiben wie mit Java10. Ich brauche kein Java10 um gute Software zu schreiben es macht es nur u.U. etwas leichter weil ich mehr Funktionalität habe. Die Software wird selber wird aber nicht einen Deut besser nur weil sie diese neuen Funktionen benutzt. Und warum sollte die Software veraltet sein wenn sie in Java6 geschrieben ist und trotzdem weiter entwickelt und gewartet wird? Nur eben mit Java6. Ist doch vollkommen legitim auf einem System weiter zu entwickeln das sich bewährt hat. Nicht alles neue ist auch autmatisch besser. Aber das wirst du auch noch lernen junger Padavan
Wozu dann überhaupt Java, nimm doch ein paar Pappkarten, ein Lochgerät und abgehts. Die haben sich damals doch auch bewährt.
Kleiner Tipp, wenn die Karten bunt sind, brauchst man zu Silvester auch kein Konfetti mehr zu basteln.