# JRE in jar verpacken eclipse



## earlgrey_tea (1. Mrz 2012)

Hallo an alle, 

ich habe eine Anwendung, die vorzugsweise auf Win7 Rechnern laufen soll. Da ich leider nicht weiß, ob die späteren Nutzer eine (aktuelle) JRE installiert haben, möchte ich diese mit dem Jarfile ausliefern. Anschließend soll das Ganze mit launch4j in eine Exe umgewandelt werden. 

Konkret habe ich zwei Fragen: 

Gibt es unter _eclipse _einen Weg die JRE in das Jarfile zu integrieren? 
Die JRE-1.7 auf meinem Rechner hat insgesamt 98Mb. Kann ich die irgendwie "_kleiner_" bekommen oder eine _leichtgewichtige_ Alternative von irgendwoher ziehen?

Vielen Dank für eure Hilfe!


----------



## Gast2 (1. Mrz 2012)

> 1. Gibt es unter eclipse einen Weg die JRE in das Jarfile zu integrieren?


Nein, aber launch4j müsste das können.



> 2. Die JRE-1.7 auf meinem Rechner hat insgesamt 98Mb. Kann ich die irgendwie "kleiner" bekommen oder eine leichtgewichtige Alternative von irgendwoher ziehen?


Nein, soweit ich weiß gibts da nichts.

Ich würde die JRE aber nicht mit in deine jar Datei packen. Wenn du das JRE mitliefern willst, dann leg das JRE in nen Verzeichnis neben deiner Anwendung.
Aber reicht es nicht aus den User beim Installieren den Download des JRE anzubieten?


----------



## earlgrey_tea (1. Mrz 2012)

Vielleicht stell ich mich auch irgendwie doof an, aber wie integriert man denn die jre in die Exe? Kannst du das vielleicht kurz skizzieren (gerne konkret an launch4j)?


----------



## Gast2 (1. Mrz 2012)

1) Launch4j kann das nicht. Du musst einen Java to Native Compiler verwenden. Die können das JRE mit in die Exe reinkompilieren. Wird aber halt sau groß. 

2) Du kannst eine private JRE verwenden (heißt die Jar mit einem JRE ausliefern und diese ins manifest eintragen) Das ganze kannst du dann in einen Installer packen (z.B: InnoSetup Compiler) 

3) Launch4j kann eine Überprüfung der installierten Runtime durchführen und eine Meldung ausgeben in der du einen Downloadlink bereitstellen kannst (auf die Oracle Seite zum Beispiel) 

Ich bevorzuge Variante 3, da du dich nicht um die passende Runtime kümmern musst, und der Kunde so immer eine aktuelle besorgt.


----------



## earlgrey_tea (1. Mrz 2012)

Ok. Danke erstmal. Ich werde mich an Punkt 2 versuchen, aber vermutlich läufts, aufgrund der schieren Größe, auf Variante 3 'raus... auf die Gefahr hin, dass es einige Nutzer überfordern wird.


----------



## Gast2 (1. Mrz 2012)

earlgrey_tea hat gesagt.:


> .. auf die Gefahr hin, dass es einige Nutzer überfordern wird.



Benutzer die überfordert sind eine Datei von einer gegebenen Internetseite herunterzuladen und zu installieren, sollten ohnehin nichts auf einen PC installieren. Von daher würde ich diesen Punkt als irrelevant einstufen. 

Jemand, der etwas installiert wird wohl auch das hinbekommen.


----------



## earlgrey_tea (1. Mrz 2012)

Kann man so sehen... sie gehen aber trotzdem aus diversen Gründen an den Rechner. Ich denke man muss da der (traurigen?) Realität ins Gesicht sehen und diesem Umstand Rechnung tragen...

Meine Anwednung wird aber nicht installiert, sondern von launch4j, also der erzeugten exe, einfach ausgeführt. Insofern eigentlich auch für unbedarfte Nutzer einfach zu handeln.


----------



## Gast2 (1. Mrz 2012)

Ich bleibe dabei: 

Download eines Java Installers und das Doppelklicken auf Setup.exe sollte jeder hinbekommen.


----------



## earlgrey_tea (1. Mrz 2012)

Die besten Lösung ist es im Normalfall mit Sicherheit. Allein schon weil man den User zwingt seine VM zu updaten. 

Nochmals danke für die Vorschläge!


----------

