Oracle'ın Java'sını Ubuntu'da varsayılan Java olarak nasıl ayarlayabilirim?


134

JAVA_HOMEUbuntu'daki değerini Oracle'ın Java'sına işaret edecek şekilde nasıl değiştirebilirim ?

java-6-sunVeya işaret etmeli java-6-sun-1.6.0.24mi?

Yanıtlar:


175

Çizgiyi koydum:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Benim de ~/.bashrcdosyaya.

/usr/lib/jvm/java7-oracleişaret eden sembolik bir bağlantı olmalıdır /usr/lib/jvm/java-7-oracle-[version number here].

Sembolik bir bağlantı olmasının nedeni, JVM'nin yeni bir sürümü olması durumunda .bashrcdosyanızı güncellemenize gerek olmamasıdır, otomatik olarak yeni sürüme işaret etmelidir.

JAVA_HOMEOrtam değişkenlerini global olarak ve sistem düzeyinde ayarlamak istiyorsanız, kullanım /etc/environmentdosyada ayarlanmalıdır .


4
Veya Oracle'ın (Sun) JDK yerine OpenJDK kullanıyorsanız /usr/lib/jvm/java-1.6.0-openjdk-amd64.
pm_labs

7
Dışa aktarma JAVA_HOME = / usr / lib / jvm / default-java /
noomz kullanabilirsiniz

@noomz default-java yoksa bunu nasıl elde edersiniz?
AHungerArtist

@AHungerArtist Openjdk veya resmi olarak desteklenen diğer Ubuntu paketlerini yüklerseniz bunu elde edersiniz. Ne yazık ki, webupd8 / java ppa kullanan Oracle JDK için desteklenmemektedir. Aslında, oracle-java7-set-defaultpaketin ne yaptığı benim için tamamen belirsiz .
Melvyn

Bunu dosyaya nereye koydun?
Czipperz

166

Küresel olarak ve sistem düzeyinde değiştirmek istiyorsanız;

İçinde

/etc/environment

bu satırı ekle:

JAVA_HOME=/usr/lib/jvm/java-7-oracle


@metdos yukarıdaki cevap küresel değil mi sistem düzeyinde mi?
Android Killer

1
@AndroidKiller daniel kullmann'ın işaret ettiği bağlantıyı kontrol ettiniz mi?
metdos

@metdos iyi çalışıyor, ancak referans değişkenleri benim için $JAVA_HOMEçalışmıyor ... böyle kullanıldığında çözülmüyor PATH=$JAVA_HOME/bin, yeniden başlatmayı denedi, etki yok. Bu dosyada mı yoksa profilimde mi olmalı exportyoksa set JAVA_HOMEbu dosyada mı?
rafya

@Raffian Farklı köşe kasaları hakkında emin değilim, bu şekilde benim için mükemmel çalıştı, daha fazla bilgi için help.ubuntu.com/community/EnvironmentVariables
metdos

53

Oracle'ın Java SE Geliştirme Kiti'ni sistem varsayılanı Java olarak ayarlamak için en son Java SE Geliştirme Kiti'ni buradan indirin ve dosya sisteminizde istediğiniz yerde bir dizin oluşturun, örneğin /usr/javaşimdi bu dizine indirdiğiniz dosyaları çıkarın:

$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java

şimdi JAVA_HOMEortam değişkeninizi ayarlamak için :

$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000

Oracle'ın java'sının varsayılan java olarak ayarlandığından emin olun:

$ update-alternatives --config java

şöyle bir şey elde edersiniz:

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

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /opt/java/jdk1.8.0_05/bin/java                  20000     auto mode
  1            /opt/java/jdk1.8.0_05/bin/java                  20000     manual mode
  2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      manual mode

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

soldaki sayılardan önce yıldız işaretine dikkat edin ve doğru olan ayarlanmadıysa, numarayı yazıp enter tuşuna basarak doğru olanı seçin. şimdi java'nızı test edin:

$ java -version

aşağıdaki gibi bir şey alırsanız, gitmek için iyidir:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

bunu yapabilmek için root iznine ihtiyacınız olabileceğini veya sudoers grubunda olabileceğinizi de unutmayın. Bu çözümü hem ubuntu 12.04 hem de Debian wheezy üzerinde test ettim ve her ikisinde de çalışıyor.


1
evet bu çözüm kabul edilenden çok daha temiz.
simone cittadini

@JayminGajjar minnettarlığın gerekli olmadığını yorumlar. Bu web sitesinde iyi soruları / cevapları destekleme mekanizması, onları kaldırmaktır. Eğer değil ama açıklama için yeterli bunu yapacak kadar itibar parça bulunmaktadır yoksa, vb hangi sistem ve hangi işletim size testi yaptım ve bu çözüm bulmak çalışmaya gibi bunun bazı yararlı bilgileri eklemeyi deneyin
Barracuda

@Barracuda zaten oy verdim, Bilgi konusunda haklısın, Benim için Ubuntu 16.10 64 Bit Server OS'de çalıştı :)
Jaymin Gajjar

20

Bu ortam değişkeninin tüm kullanıcılar tarafından kullanılabilir olmasını ve sistem başlangıcında olmasını istiyorsanız, /etc/profile.d/java.sh dosyasına (gerekirse oluşturun) aşağıdakileri ekleyebilirsiniz :

export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle

Sonra bir terminal çalışmasında:

sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

İkinci sorum şu - java-6-sun veya java-6-sun-1.6.0.24'ü işaret etmeli mi?

Her zaman java-7-oracleen son yüklü olana sembolik olarak işaret etmelidir (Java'yı Ubuntu depolarından ve şimdi oracle.com adresinden indirdiğinizden varsayalım).


12

java 6

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

veya java 7

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64


10

Herhangi bir geliştirme yapıyorsanız, JDK'ya (Java Geliştirme Kiti) işaret etmeniz gerekir. Aksi takdirde, JRE'yi (Java Çalışma Zamanı Ortamı) gösterebilirsiniz.

JDK, JRE'nin sahip olduğu her şeyi ve daha fazlasını içerir. Yalnızca Java programlarını yürütüyorsanız, JRE veya JDK'yı işaret edebilirsiniz.

Kullandığınız JAVA_HOME geçerli Java'ya göre ayarlamanız gerekir . readlinkgeçerli Java için sembolik bir bağlantının değerini yazdırır ve sedJRE dizinine ayarlar:

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

JAVA_HOME'u JDK olarak ayarlamak istiyorsanız, bir klasör daha yukarı gitmelisiniz:

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


5

Bkz bu ; Çalıştırmak

sudo  update-java-alternatives --list

bir makinedeki tüm Java yüklemelerini ada ve dizine göre listelemek ve ardından

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'lar / JRE'ler kullanmak istiyorsanız, bir kerede bir java yürütülebilir dosyası yapılandırmak için güncelleme alternatiflerini çalıştırabilirsiniz; koşabilirsin

sudo  update-alternatives --config java[Tab]

yapılandırılabilen Java komutlarını görmek için (java, javac, javah, javaws vb.). Ve sonra

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

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

Bazı uygulamalar için JAVA_HOME ayarlamanız da gerekebilir: bu cevaptan şunları 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'lar için.


Başka bir yaklaşım:java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment
Xdg
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.