Java >> Java tutorial >  >> Tag >> switch

Skift mellem flere java-versioner

Apt-get vil ikke overskrive de eksisterende java-versioner.

For at skifte mellem installerede java-versioner skal du bruge update-java-alternatives kommando.

Liste over alle java-versioner:

update-java-alternatives --list

Indstil java-version som standard (kræver root-tilladelser):

sudo update-java-alternatives --set /path/to/java/version

...hvor /path/to/java/version er en af ​​dem, der er angivet af den forrige kommando (f.eks. /usr/lib/jvm/java-7-openjdk-amd64 ).

Yderligere Information:

update-java-alternatives er et bekvemmelighedsværktøj, der bruger Debians alternativsystem (update-alternatives ) for at indstille en masse links til den angivne java-version (f.eks. java , javac , ...).


Brug

sudo update-alternatives --config java

som viser alle installerede versioner med den aktuelle aktive version markeret og giver en dialogboks til at skifte:

There are 3 choices for the alternative java (providing /usr/bin/java).

Selection    Path...
------------------------------------------------------------
  0            /usr/lib/jvm/java-9-oracle/bin/java...
* 1            /usr/lib/jvm/java-7-oracle/jre/bin/java...
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java...
  3            /usr/lib/jvm/java-9-oracle/bin/java...

Press <enter> to keep...[*], or type selection number: 

Brug

export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"

for at indstille $JAVA_HOME fra den aktuelle aktive version


Baseret på svaret fra @muet fandt jeg, at dette fungerede problemfrit:

Føj dette til ~/.bashrc :

export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"

Føj til aliaser:

alias useJava8='yes | sudo apt-get install oracle-java8-set-default && source ~/.bashrc'
alias useJava7='yes | sudo apt-get install oracle-java7-set-default && source ~/.bashrc'

Så kan du skifte inden for den samme shell ved kun at bruge:useJava7 eller useJava8


Java tag