# Java mitnehmen



## Roland13 (24. Jul 2018)

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.


----------



## Xyz1 (24. Jul 2018)

nein


----------



## httpdigest (24. Jul 2018)

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.


----------



## mihe7 (24. Jul 2018)

Jetzt war @httpdigest schneller  

Noch was: alte Java-Versionen von Sun/Oracle findet man hier: https://www.oracle.com/technetwork/java/archive-139210.html


----------



## mrBrown (24. Jul 2018)

Ja, gibt es. 




Roland13 hat gesagt.:


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


----------



## Thallius (24. Jul 2018)

mrBrown hat gesagt.:


> Ja, gibt es.
> 
> 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...



Da sieht man wieder das du nicht in der freien Wirtschaft arbeiten kannst  Sowas bezahlt halt einfach kein Mensch. 

Gruß

Claus


----------



## httpdigest (24. Jul 2018)

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)


----------



## mrBrown (24. Jul 2018)

Thallius hat gesagt.:


> Da sieht man wieder das du nicht in der freien Wirtschaft arbeiten kannst  Sowas bezahlt halt einfach kein Mensch.



Da sieht man wieder das du nicht in der freien Wirtschaft arbeiten solltest  Sowas resultiert halt in völlig veralteter Software.

Wer auch nur ansatzweise vernünftig programmiert, hat kaum größeren Probleme beim umstellen.


----------



## Thallius (24. Jul 2018)

mrBrown hat gesagt.:


> Da sieht man wieder das du nicht in der freien Wirtschaft arbeiten solltest  Sowas resultiert halt in völlig veralteter Software.
> 
> Wer auch nur ansatzweise vernünftig programmiert, hat kaum größeren Probleme beim umstellen.



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


----------



## mihe7 (24. Jul 2018)

Thallius hat gesagt.:


> Ich kann selbst mit Java6 genauso gute Software schreiben wie mit Java10. Ich brauche kein Java10 um gute Software zu schreiben


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...)


----------



## httpdigest (24. Jul 2018)

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)


----------



## mihe7 (24. Jul 2018)

Sechs Jahre EOL? Das ist ja schon verdorben


----------



## Xyz1 (24. Jul 2018)

Java 8 ist nicht EoL 

Bearbeitung: Das JRE 8u181 ist funkelnagelneu


----------



## mrBrown (24. Jul 2018)

Thallius hat gesagt.:


> Aber das wirst du auch noch lernen junger Padavan


Wie kommst du überhaupt auf mein Alter?


----------



## L0oNY (25. Jul 2018)

Thallius hat gesagt.:


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


----------

