Newsgroup: it.comp.java
Titolo: Distribuzione JRE con applicazione

Ciao a tutti,
dovendo sviluppare un'applicazione in java, è possibile poi distribuire 
assieme ad essa una cartella (da posizionare sotto la directory madre 
dell'applicazione) contenente la JRE, e fare in modo che l'applicazione 
utilizzi la JRE che trova nella sua directory anzichè quella 
eventualmente installata nel sistema?
Pensavo di fare un file batch per lanciare l'applicazione, che quando 
eseguito faccia un "SET JAVA_HOME = directory_app\jre" e poi lanci 
l'applicazione, in modo che l'eventuale variabile di sistema JAVA_HOME 
esistente non venga toccata (perchè modificata solo in un prompt dei 
comandi, e quindi visibile soltanto lì)...
Secondo voi è fattibile? O mi sapete consigliare soluzioni alternative? 
La mia necessità è di creare appunto un'applicazione java che non 
costringa l'utente ad installare una jre diversa da quella che ha sul 
sistema o ad installarne una nuova se non ne ha già una installata...
Grazie mille a tutti!


La cosa migliore è usare un exe wrapper (lanch4j o jsmooth sono i primi 
che mi vengono in mente). Ti consentono di creare un eseguibile che 
lancia il tuo programma Java e tra le varie funzioni consentono di 
specificare la directory della JVM da usare.

on 06/07/2007, Tristano supposed :

Grazie mille! :) Allora darò un'occhiata a questi due tool!

 ha  
scritto:

jsmooth però si basa su una jvm già presente in locale, mi pare
-- 
Manny Calavera
Mail To: anforagimailpuntocom²
Uccidete i filosofi, tenetevi riso e bacchette per voi

 writes:
E> Secondo voi è fattibile? O mi sapete consigliare soluzioni
E> alternative? La mia necessità è di creare appunto un'applicazione
E> java che non costringa l'utente ad installare una jre diversa da
E> quella che ha sul sistema o ad installarne una nuova se non ne ha
E> già una installata...
È fattibile ma non è  elegante. La soluzione elegante è verificare che
l'applicazione supporti  tuttle le  JRE a _partire_  da una  data ver-
sione.
Quindi  si verifica  il  numero  di versione  della  JRE (property  di
sistema)  ed  eventualmente  si  indica  dove  reperire  una  versione
aggiornata.
Dato che adesso è  possibile, si possono accludere nella distribuzione
le JRE per vari sistemi operativi.
Per esercizio dire  perchè il wrapper è solo  apparentemente una buona
idea.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software
A Cesare avrei detto di scrivermi a	 | To Caesar I woul have said "emai me to
fn...@rat.vg
  (Lui cifrava in rot13) | 
fn...@rat.vg
  (He encrypted wit Rot13)


So anch'io che non è elegantissimo, e non ho alcun problema a fare la 
mia applicazione compatibile con tutte le JRE dalla (esempio) 1.4.2 in 
su. Però posso fare lo stesso assunto per eventuali altre applicazioni 
java-based che l'utente ha sul sistema? Cioè, dirgli di scaricarsi java 
1.6 rischiando che altre applicazioni che ha, e che funzionano solo su 
java 1.4.2, inizino a dargli problemi...per questo volevo puntare sulla 
soluzione "tieni il tuo sistema com'è ora e non preoccuparti, perchè la 
mia applicazione è totalmente indipendente e si arrangia" ;)

 eventualmente installata nel sistema?
Si, funziona, io configuro così tutti i pgm. Se n'è gia' parlato nel
newsgroup tempo fa.
Il tuo *.bat  (o l'*.sh) lancia esplicitamente ./jre/bin/java ....
Se scavi nel newsgroup trovi anche proposte più sofisticate.
ciao,
    davide
--
Ing. Davide Grandi
davide...@mclink.it