2015-02-03 21 views
5

Invio un file jar eseguibile al cliente, Il cliente ha installato JRE 5, JRE 6 e JRE 7 sulla scatola. Il mio Jar ha richiesto JRE 7 per funzionare. Senza modificare il PATH di sistema (var di Ambiente), come posso specificare JRE 7 da usare?come specificare JRE per eseguire un jar eseguibile

+0

Versione stringa = System.getProperty ("java.version"); if (! Version.StartsWith ("1.7")) {// apri pagina di download a java} – Anirudha

+0

grazie, ma questo non è il requisito – user1493834

+1

Sopra ** risposta ** per controllare solo la versione e solo per continuare se è partendo da 1.7 si blocca l'utilizzo di una versione Java specifica e quindi è assolutamente sbagliato. –

risposta

5

È possibile specificare il percorso completo che JRE che è necessario, per esempio:

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

o

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

Se si esegue questo da una shell (copione), allora è buona pratica per prima cosa impostare la variabile di ambiente JAVA_HOME nella posizione corretta prima (/path/to/jre) prima di eseguire l'eseguibile. È possibile prima impostare/esportare JAVA_HOME e quindi estenderlo alla posizione dell'eseguibile Java (ad esempio %JAVA_HOME%\bin\java.exe su Windows). Maggiori informazioni here.

+0

Attenzione che questo è un percorso molto pericoloso da prendere. Di solito l'ultima versione di un runtime è in jre7 o jre8. Questo riceverà aggiornamenti in quanto è un'installazione patch-in-place (come lo chiama Oracle). Se stai puntando a un runtime statico o se la posizione non riceve più aggiornamenti (di sicurezza), potresti incontrare dei problemi. –

2

Non sono sicuro che ci sia un modo multipiattaforma per raggiungere questo obiettivo.

Su Windows è possibile utilizzare uno strumento come launch4j per avvolgere il contenitore come .exe che può selezionare un JRE appropriato.

Su Mac OS X è possibile avere diversi JDK diversi installati in parallelo, ma solo un JRE pubblico (che sarà almeno l'ultima versione dei JDK installati, e potrebbe essere più recente se è stato aggiornato automaticamente). È il JRE pubblico utilizzato per i pacchetti di app e quando si fa doppio clic su un JAR nel finder.

+0

Di solito tali lanciatori hanno metodi specifici per trovare il miglior JRE da usare. Quindi questa risposta dovrebbe essere preferita specificando direttamente l'eseguibile della VM (ad esempio 'java.exe') in quanto è più flessibile e possibilmente più sicuro. Tuttavia aggiunge un altro componente al tuo runtime. –

0

Il modo più semplice per eseguire questa operazione consiste nell'utilizzare Java WebStart per avviare il programma e quindi specificare che è necessaria una versione di Java adeguatamente nuova. Il programma di avvio individuerà quindi una distribuzione adeguata sul proprio sistema da utilizzare.

L'utilizzo di javaws consente inoltre di distribuire facilmente nuovi aggiornamenti per gli utenti.

Avvertenza: il caching è notoriamente un problema negli anni. Assicurati che quando un barattolo cambia contenuto, anche il suo URL cambia.

Problemi correlati