È possibile installare tutte le versioni di Java che si desiderano.
sarebbe pericoloso per l'installazione per modificare una variabile locale ambiente come JAVA_HOME
, poiché potrebbe riferimento un'installazione Java esistente.
Questo non ha nulla a che fare con un presunto "problema dipendente dalla piattaforma". ;)
Poiché gli script potrebbero dipendere dal JAVA_HOME
per avviarsi, di nuovo, questo sarebbe disastroso per una nuova installazione Java da modificare JAVA_HOME
: tutti quegli script dovrebbero essere lanciati all'improvviso con una nuova JVM potenzialmente incompatibile.
Inoltre, impostando $JAVA_HOME/bin
o %JAVA_HOME%/bin
nel vostro percorso, è possibile modificare dinamicamente JAVA_HOME
a qualsiasi versione di Java che si desidera utilizzare, senza dover molto con la variabile PATH.
Michael Borgwardt ha fatto nei commenti alla domanda del follow interessante
Eppure, questo non spiega il motivo per cui il programma di installazione non imposta JAVA_HOME quando non è impostata in precedenza a tutti.
La risposta è semplice:
La configurazione non può sapere se uno script dipende già in JAVA_HOME
o no.
Significato: alcuni script potrebbero verificare il valore JAVA_HOME
e, se non impostato, fare riferimento a un'altra JVM installata altrove (e non dimenticare che con "installa", si può solo fare riferimento a "copiata": un JDK/JRE è non sempre installato da una configurazione)
Se si imposta JAVA_HOME
, ciò può interrompere il comportamento predefinito di alcuni dei propri script.
Non volendo disturbare script ipotetici che dipendono da un ENV var non essere impostato suono inutilmente paranoici a me - Se uno script fa questo, allora chiaramente vuole utilizzare una JVM diversa quando si è installato - alcun motivo per evitarlo
Mmm ... Dolce. Per la gestione di enormi problemi di distribuzione su base giornaliera (per applicazioni interne nel mio negozio), posso assicurarvi: è molto "paranoico" ragionevole da trattare con lo trattamento.
Quando si distribuisce a un (molto) grande insieme di utenti, non si vuole fare qualsiasi ipotesi circa la loro piattaforma e le configurazioni. "chiaramente WANTS" è un'ipotesi che non oserei fare (o reindirizzare il mio telefono al tuo;) e gestirai le chiamate furibonde).
Ad esempio, abbiamo molti script che vengono lanciati con una JVM 1.4.2 da sun (JAVA_HOME non impostato su piattaforma di sviluppo, percorso predefinito impostato direttamente nello script) o con 1.4.2 da JRockit (JAVA_HOME
set, come è l'obiettivo previsto per le piattaforme di integrazione, pre-produzione e produzione).
Ma installiamo regolarmente il nuovo JDK1.6.x poiché lo usiamo per lanciare eclipse.
Supponiamo che quegli script vogliano il loro set JAVA_HOME
... e che non funzioni più.
... Al che Robert Grant rende questo critico on-the-spot:
che stai descrivendo script che richiedono una versione specifica, ma ancora guardano JAVA_HOME globale. Questo è solo uno script mal concepito.
Mentre che può o non può essere vero, che illustra anche proprio il mio punto:
"non si vuole fare alcuna assunzione": nessuna ipotesi sulla loro piattaforma/impostazioni, e nessuna ipotesi sulla loro "migliori pratiche".
Il primo può sembrare paranoico, il secondo è semplice buonsenso: pensare che il tuo prodotto (qui una configurazione JDK) non romperà nulla sull'ambiente dell'utente perché l'utente ha "correttamente" pensato i suoi script ... sarebbe folle.
GvS suggerisce:
o potrebbe semplicemente avere l'opzione di farlo, disabilitato per default
Ciò significherebbe un'altra opzione per includere nelle schermate di configurazione, l'opzione che dovrebbe essere attentamente rivisto dall'utente e che può avere conseguenze indesiderate, anche quando l'utente lo seleziona pensando di sapere cosa sta facendo ...
Semplicemente non ne vale la pena.
Perché Java non ne ha bisogno. – EJP