2015-02-03 6 views
5

Ich bin eine ausführbare JAR-Datei an den Kunden, Kunde hat JRE 5, JRE 6 und JRE 7 auf der Box installiert. Mein Jar brauchte JRE 7 um zu laufen. Ohne das System PATH (Environment var) zu ändern, wie kann ich das JRE 7 für die Verwendung angeben?wie JRE angeben, um eine ausführbare jar auszuführen

+0

Zeichenfolge version = System.getProperty ("java.version"); if (! Version.StartsWith ("1.7")) {// Download-Seite zu Java öffnen} – Anirudha

+0

danke, aber das ist nicht die Voraussetzung – user1493834

+1

Über ** Antwort **, nur für die Version zu überprüfen und nur weiter, wenn es ist beginnend mit 1.7 sperrt Sie die Verwendung einer bestimmten Java-Version und ist daher absolut falsch. –

Antwort

5

Sie vollständigen Pfad zu dieser JRE angeben können, die Sie benötigen, zum Beispiel:

/path/to/jre/bin/java.exe -jar executable.jar 

oder

/path/to/jre/bin/javaw.exe -jar executable.jar 

Wenn Sie dies von einem Shell (Skript) laufen dann ist es Es empfiehlt sich, zuerst die Umgebungsvariable JAVA_HOME an die richtige Stelle vor dem Ausführen der ausführbaren Datei zu setzen (/path/to/jre). Sie könnten zuerst JAVA_HOME setzen/exportieren und dann auf den Speicherort der ausführbaren Java-Datei (z. B. %JAVA_HOME%\bin\java.exe unter Windows) erweitern. Weitere Informationen here.

+0

Vorsicht, dies ist ein sehr gefährlicher Weg. Normalerweise befindet sich die neueste Version einer Laufzeit in jre7 oder jre8. Dies wird Updates erhalten, da es sich um eine Patch-in-Place-Installation handelt (wie Oracle es nennt). Wenn Sie auf eine statische Laufzeit verweisen oder wenn der Standort keine (Sicherheits-) Updates mehr erhält, können Probleme auftreten. –

2

Ich bin mir nicht sicher, ob es eine plattformübergreifende Möglichkeit gibt, dies zu erreichen.

Unter Windows können Sie ein Tool wie launch4j verwenden, um das Jar als .exe zu verpacken, das eine geeignete JRE auswählen kann.

Unter Mac OS X können mehrere verschiedene JDKs parallel installiert sein, aber nur eine öffentliche JRE (die mindestens die neueste Version der installierten JDKs ist und möglicherweise neuer ist, wenn sie automatisch aktualisiert wurde). Es ist die öffentliche JRE, die für App-Bundles und beim Doppelklicken auf ein JAR im Finder verwendet wird.

+0

Normalerweise haben solche Launcher spezifische Methoden, um die beste zu verwendende JRE zu finden. Daher sollte diese Antwort der direkten Angabe der ausführbaren VM-Datei (z. B. "java.exe") vorgezogen werden, da sie flexibler und möglicherweise sicherer ist. Es fügt jedoch eine andere Komponente zu Ihrer Laufzeit hinzu. –

0

Der einfachste Weg, dies zu tun, ist Java WebStart zu verwenden, um Ihr Programm zu starten und dann anzugeben, dass Sie eine entsprechend neue Version von Java benötigen. Der Launcher sucht dann nach einer geeigneten Distribution auf Ihrem System.

Mit javaws können Sie auch einfach neue Updates an Ihre Benutzer verteilen.

Vorbehalt: Caching war im Laufe der Jahre ein Problem. Stellen Sie sicher, dass sich die URL eines jar ändert, wenn ein jar Inhalt ändert.

Verwandte Themen