Varsayılan Java sürümü nasıl ayarlanır?


124

Bu soruda belirtilen tüm talimatları izledim , ancak son kısmında bazı sorunlarla karşılaşıyorum.

Aslında 6.22 Java sürümüne sahibim ve 6.30 sürümüne güncellemek istiyorum.

Böylece çıkarılan dizinin java-6-oracleiçine taşındıktan sonra /usr/lib/jvmne yapacağımı bilemiyorum, çünkü yukarıdaki cevabında belirtilen kod java 5'den java 6'ya güncelleniyor.

Bir yaparsak burada netlik uğruna çıkışı lsdir /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

Ben şimdi ne yapmalıyım?


EK PARÇA

@Fossfreedom önerisi altında zaten senaryoyu koştum ve aslında java sürümünü güncelledi.

Aslında eğer komut çalıştırırsam java -versionçıktı şu olur:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

Orada bir sorun hala Irun eğer, javac -versionbana yüklü eski sürümü verir:

$ javac -version
javac 1.6.0_22

Ve eğer test cihazını bu bağlantıda kullanırsam bana versiyonun

Java Version 1.6.0_22 from Sun Microsystems Inc.

Ne yanlış gidiyor?

Görünüşe göre Java Runtime Environment güncellendi, ancak tarayıcı için Java Compiler ve Java eklentisi henüz yok.

Onları nasıl güncelleyebilirim?


DİĞER EK PARÇA

sudo update-alternatives --config java çıktının ardından geri dönecek

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

Bunlar, JRE'nin 6.31 sürümüne doğru bir şekilde güncellendiği gerçeğiyle anlamlıdır, sorunlar Java Compiler ve Java tarayıcı eklentisindedir.

Herhangi bir fikir?


@fossfreedom bunu denemedim çünkü Java 5'ten 6'ya yüklemek için açıkça yazılmış olması iyi bir fikir olmadığını düşündüm, yine de yapmalı mıyım?
Matteo,

1
hmmm - muhtemelen webupd8 betiğinin 0.5b olduğunu karıştırıyor olabilirsiniz? Komut dosyasının sürümü budur - java sürümüne atıfta bulunmaz. Bir şans ver. Komut dosyasını çalıştırdığınızda pencerenin nasıl göründüğünün ekran görüntüsünü görelim.
fossfreedom

@fossfreedom evet bu tamamen kafam karıştı, DI senaryoyu çaldı! söz konusu düzenlemeleri kontrol edin bana yardımcı olduğunuz için çok teşekkür ederim ..
Matteo

ne kadar garip ... bununla hiç karşılaşmadım. Her neyse - hemen aşağıdaki cevaba bakınız - sudo update-alternativesörneğe göre yapabilmelisiniz .
fossfreedom

@fossfreedom tekrar soru güncellendi!
Matteo,

Yanıtlar:


103

İlk sorunuz:

muhtemelen webupd8 betiğinin 0.5b olduğunu karıştırıyor olabilirsiniz. Komut dosyasının sürümü budur - java sürümüne atıfta bulunmaz.

Javac versiyonunun ayarlanması.

Açıkça javac derleyicisinin yolunu belirtmeniz gerektiğinden şüpheleniyorum.

yani

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

bunu takiben:

sudo update-alternatives --config javac

Java krom eklentisi kurma ile ilgili olarak.

Asıl soru:

Oracle JDK 6'yı nasıl kurarım?

bu bilgiyi içerir - klasör yapınız biraz farklı olduğundan link komutunuz şöyle olmalıdır:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Kendi başına bu sadece derleyiciyi değiştirir - sistemimde 82 olan, java ile ilgili tüm alternatifleri değiştirmeyi sağlayan update-java alternatifleri için aşağıdaki cevaba bakınız.
Greg

55

Bkz bu ; Çalıştırmak

sudo  update-java-alternatives --list

Bir makinedeki tüm Java kurulumlarını ada ve dizine göre listelemek için

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

Hangi JRE / JDK'nın kullanılacağını seçmek için.

Her Java görevi için farklı JDK / JRE kullanmak istiyorsanız, bir seferde bir java çalıştırılabilir yapılandırmak için güncelleme alternatifleri çalıştırabilirsiniz; koşabilirsin

sudo  update-alternatives --config java[Tab]

Yapılandırılabilir Java komutlarını görmek için (java, javac, javah, javaws, etc). Ve sonra

sudo  update-alternatives --config [javac|java|javadoc|etc.]

Java görevini / komutunu belirli bir JDK / JRE ile ilişkilendirir.

Bazı uygulamalar için JAVA_HOME’u da ayarlamanız gerekebilir: bu cevaptan kullanabilirsiniz

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

JRE'ler için veya

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

JDK'ler için.


25

Bence paketteki update-java-alternativeskomut java-commonve kullandığı *.jinfodosyalara bir göz atmalısın . Bununla java kurulumları arasında tamamen geçiş yapabilmeniz gerekir (JDK, JRE,… ne olursa olsun).


2
Denedim update-java-alternativesve sonra java -versiondoğruydu, ancak bağlantı $JAVA_HOMEhala yanlıştı ... Bunu manuel olarak değiştirdim, ama update-java-alternativesbu konuda eksik bir şey olup olmadığını merak ediyorum .
Alexis Wilke

7

Ubuntu / linux'ta java versiyonunu kullanarak değiştirebilirsiniz

update-alternatives --config java

Ancak önce sürümü yüklemeniz gerekir.

Birden fazla JVM yüklemek için bu betiği (./install-java.sh) kullanabilirsiniz.

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

Bu betiği, JVM'leri paketten çıkardığınız klasöre koyun ve şunu çalıştırın:

/opt/install-java.sh

Bir sonraki kullanım:

update-alternatives --config java

1

Eğer javac javaws javadoc veya diğer java ile ilgili komutlar için alternatifler ayarlayacaksanız, onları java alternatifinin kölesi yapmak isteyebilirsiniz.

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - otomatik mod bağlantısı en iyi sürümü /opt/jdk1.8.0_74/bin/java bağlantısı şu anda /opt/jdk1.8.0_74/bin/java bağlantısına işaret ediyor java / usr / bin / java slave javadoc / usr / bin / javadoc /opt/jdk1.8.0_74/bin/java - öncelik 0 köle javadoc: /opt/jdk1.8.0_74/bin/javadoc

/Opt/jdk1.8.0_74/ değiştirerek jdk'nizin kurulu olduğu dizini kullanın.


0

Açın /etc/environmentherhangi birinde metin editörü ve aşağıdaki satırı ekleyin:

JAVA_HOME="usr/lib/jvm/open-jdk 

- Java yolu farklı olabilir.
Bu komutu çalıştırarak değişkenleri yüklemek için kaynak kullanın:

source /etc/environment

Ardından bu komutu çalıştırarak değişkeni kontrol edin:

echo $JAVA_HOME

Bu yol ayarlandığında, şu komutu çalıştırın:

sudo  update-java-alternatives --list

Varsayılan Java Sürümünüzü seçin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.