2015-09-23 20 views
8

installare Java in linux (io ho usato CentOS, RHEL è lo stesso troppo), ho usato questo comandoquando e perché alternative gestite --install javaws vaso Java javac su come installare JDK in linux

rpm -Uvh /path/to/binary/jdk-7u55-linux-x64.rpm

e verificato java

java -version

Guardando un tutorial, che dice a correre dopo 4 comandi, non so perché

## java ## 
alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000 
## javaws ## 
alternatives --install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 200000 

## Install javac only 
alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000 
## jar ## 
alternatives --install /usr/bin/jar jar /usr/java/latest/bin/jar 200000 

So che se ci sono più versioni di Java installato, è possibile selezionare la versione da utilizzare da

alternatives --config java 

allora perché correre alternative --install separatamente per ogni file eseguibile.

Ho visto this domanda, ma non ottengo la mia risposta

+0

--install solo lo registra, senza modificare la versione che stai già utilizzando, se ce n'è uno. – ilj

risposta

5

Quando si installa JDK su Linux, esso si viene installato dipende dal tipo di pacchetto, la versione e la distribuzione.È possibile fare riferimento ai seguenti link per informazioni sulla posizione di installazione su Linux:

JDK Installation for Linux Platforms - Version 8

JDK Installation for Linux Platforms - Version 7

Una volta installato JDK, la cartella bin contenente strumenti non potrebbero ottenere aggiunto alla variabile d'ambiente PATH. I comandi digitati sul terminale devono provenire dalle posizioni specificate nella variabile PATH. Nei casi in cui JDK\bin non viene aggiunto, l'utente avrebbe bisogno di configurare manualmente come indicato nel Installing the JDK Software

alternatives comando viene utilizzato per creare un link simbolico. Qui, viene diretto a utilizzare il comando per aggiungere gli strumenti come javac, javaw a /usr/bin che esiste nella variabile PATH per impostazione predefinita.

Se ( si potesse eseguire java -version al di fuori del JDK/bin& & non specificando il percorso completo & & se la versione e stampe fascio di essere come quello di pacchetto è stato installato ) { non è necessario eseguire il comando alternatives.

+0

Lol * # 32.791.202: 17: errore: Il metodo 'Se (booleana)' non è definito per il tipo # 32.791.202 * # 32.791.202: 19: errore: raggiunta la fine del file durante l'analisi '}' – LoganMzz

+0

Charu Khurana, grazie per la generosità! :) –

4

java, javaws, javac e jar sono tutti diversi gli eseguibili utilizzati dal JDK. Quando si esegue alternatives --config java, si sta solo configurando la versione dell'eseguibile java che si desidera eseguire. Tuttavia, il JDK include, ad esempio, il compilatore javac. È necessario configurare la versione del compilatore che si desidera utilizzare.

Il comando alternatives è, in poche parole, utilizzato per mantenere una ricerca di collegamenti simbolici (o simbolici). Prima di poter scegliere quale versione di java si desidera eseguire con l'opzione --configure, è necessario innanzitutto registrare il percorso effettivo dell'eseguibile con l'opzione --install. alternatives --install non sta installando alcun software. Si tratta semplicemente della registrazione di alcuni percorsi e alias con il framework alternatives. (Nota: alternatives non utilizza il comando alias. Voglio dire "alias" nel senso letterale tradizionale.)

Si deve anche capire cosa fa il comando rpm. In realtà, è solo cadere una serie di binari in una particolare directory. Questa directory potrebbe essere lunga e noiosa per specificare esplicitamente: /some/path/to/lib/jvm/java-1.x.x-etc-etc-x86/jre/bin/java. Non si desidera specificarlo ogni volta che si desidera eseguire java. Invece, impostiamo alcuni collegamenti simbolici.

Si potrebbe anche voler leggere su come il PATHworks in linux.

Può diventare più chiaro se si prova a tracciare attraverso l'installazione della macchina. Ecco cosa mi sono imbattuto:

> which java 
/usr/bin/java 
> ls -l /usr/bin/java 
lrwxrwxrwx 1 root root 22 Aug 14 2014 /usr/bin/java -> /etc/alternatives/java 
> ls -l /etc/alternatives/java 
lrwxrwxrwx 1 root root 73 Aug 14 2014 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65-2.5.1.2.fc19.x86_64/jre/bin/java 
+0

Se si tratta solo di impostare percorsi di diversi eseguibili, allora perché non fare solo 'alternative --config javac' e così via, proprio come per java. Eppure, è difficile assorbire la logica di impostare singoli eseguibili –

+0

@djs Ottima risposta! – Prashant

-2

Forse, solo la guida è obsoleta.

Dopo aver installato il numero di giri, è possibile controllare:

alternative --display java

per vedere se è possibile vedere la nuova versione è controllato da alternativa, se non è necessario "--install" loro; altrimenti, penso che puoi semplicemente saltare la parte "--install".

0

Questi script "alternativi" e strumenti simili eseguono solo collegamenti simbolici della versione JDK desiderata alle directory che dovrebbero essere. È fatto per tutti i comandi che dovrebbero essere disponibili sulla tua riga di comando.

La definizione di "tutto" dipende dalla distro.