Java, macOS'un en son sürümlerinde isteğe bağlı bir pakettir.
Ancak kurulduktan sonra JAVA_HOME ortam değişkeni düzgün ayarlanmamış gibi görünür .
Java, macOS'un en son sürümlerinde isteğe bağlı bir pakettir.
Ancak kurulduktan sonra JAVA_HOME ortam değişkeni düzgün ayarlanmamış gibi görünür .
Yanıtlar:
İle Java opsiyonel paketin veya Oracle JDK sizin için aşağıdaki satırlardan birini ekleyerek yüklü ~ / .bash_profile buna göre ortam değişkeni ayarlar dosyası.
export JAVA_HOME="$(/usr/libexec/java_home -v 1.6)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
Güncelleme: Jilles van Gurp yanıtına dayalı -v bayrağı eklendi .
/usr/libexec/java_home
bir dizin değil yürütülebilir bir dosyadır. Şu anda yapılandırılmış olan JAVA_HOME çıktısını verir ve gerçekte değiştirmez. Java Tercihler uygulaması bunun için, benim durumumda kırık görünüyor ve aslında JVM'yi doğru bir şekilde değiştirmiyor. 1.7 JVM listeliyor ama aslında çıkışını değiştirmeden orada istediğim tüm geçiş / açma / sürükleme ve bırakabilirsiniz /usr/libexec/java_home
.
Oracle'dan Lion'a 1.7.0 u6 yükledikten ve tercihlerde varsayılan olarak ayarladıktan sonra bile, yine de elma 1.6 java evine döndü. Benim için gerçekten işe yarayan tek düzeltme JAVA_HOME'u manuel olarak ayarlamaktır:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home/
En azından bu şekilde komut satırından çalıştırıldığında 1.7 kullanır. /usr/libexec/java_home
hala 1.6 konusunda ısrar ediyor.
Güncelleme : OSX'te Komut Satırından Java'yı Anlama , bunun nasıl çalıştığı hakkında daha iyi bir açıklamaya sahiptir.
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
bunu yapmanın yolu. Not, bunu 1.8 olarak güncellemek gayet iyi çalışıyor.
Benim için Mountain Lion 10.8.2, en çok oy alan çözüm işe yaramıyor. Oracle üzerinden jdk 1.7 ve homebrew'dan maven'i kurdum.
Benim çözümüm homebrew'dan da yüklediğim hadoop hadoop-env.sh dosyasından. Aşağıdaki cümleyi ~ / .bash_profile dosyasına ekliyorum ve işe yarıyor.
export JAVA_HOME="$(/usr/libexec/java_home)"
Bu çözüm, Oracle'dan Java 1.8 yüklü OS X Yosemite için de çalışır.
export JAVA_HOME="$(/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home)"
Yukarıdaki cevapların hiçbiri bana yardımcı olmadı. Sanırım tüm cevaplar daha yaşlılar içinOS X
OS X Yosemite 10.10 için şu adımları izleyin
Açmak için favori metin düzenleyicinizi kullanın: ~/.bash_profile
//This command will open the file using vim
$ vim ~/.bash_profile
Aşağıdaki satırı dosyaya ekleyin ve kaydedin (: ardından vim için "x"):
export JAVA_HOME=$(/usr/libexec/java_home)
Ardından terminalde çıktıyı görmek için aşağıdaki iki komutu yazın:
$ source ~/.bash_profile
$ echo $JAVA_HOME
İkinci satırda, .bash_profile
dosyanın içeriğini güncelleştiriyorsunuz .
Java 9 ve bazı düzgün takma adlar için güncelleme.
İçinde .bash_profile
:
export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`
En son sürüm için olduğunu 9
ve olmadığını unutmayın 1.9
.
Etkin Java'yı ayarla:
export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH
Farklı sürümler arasında geçiş yapmak için bazı ek takma adlar:
alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'
Terminalde test:
% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
EDIT: Java 10 Güncelleştirmesi
export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'
EDIT: Java 11 Güncelleştirmesi
export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'
Yukarıdakiler benim için Amazon'un EC2 araçlarıyla işe yaramadı, çünkü bin/java
altında vb JAVA_HOME
. /System/Library/Frameworks/JavaVM.framework/Home
Iş yaptı.
Mac OS X Lion'da, visualgc'yi çalıştırmak için ayarlamak için kullandım:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
/usr/libexec/java_home
? / usr / libexec / java_home komutu /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Aşağıdakiler benim için çalıştı. Java 8 yüklü OSX Yosemite üzerinde ZSH kullanıyorum.
Aşağıdaki komut /usr/libexec/java_home
JDK giriş yolunu yayar:
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
Sizin ~/.zshrc
,
export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"
Daha iyi (daha yükseltilebilir) bir yöntem aşağıdakileri kullanmaktır:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
Bu, AWS ile de çalışmalıdır çünkü bin
Home'un altında olduğu için
1.7.0_21-b12 gibi daha yeni Oracle JVM'lerin buraya yüklendiği görülüyor:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/usr/libexec/java_home
araç bu Java sürümleri için bir hata döndürür.
macOS Mojave 10.14.1 ve JAVA 11.0.1 için profili
export JAVA_HOME=$(/usr/libexec/java_home)
doğrulamak için terminali girin:
$JAVA_HOME/bin/java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
Benim yaklaşımım:
Bashrc
export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME
# -- optional
# export PATH=$JAVA_HOME/bin:$PATH
Bu, J6 ve J7 arasında geçiş yapmayı çok kolaylaştırır
Bunu Macbook Air'imdeki tam yola ayarlamam gerekiyordu.
İzlenen adımlar:
echo $JAVA_HOME
, kullanarak arama deneyin değilse, (o yolu göstereceğiz set değilse)sudo find /usr/ -name *jdk
sudo nano ~/.bash_profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
echo $JAVA_HOME
JAVA 8 ile bir Macbook Air'de MACOS MOJAVE - 10.14.2 (18C54) kullanıyorum
Mac OS X 10.9 için JRE'nin en son sürümünü Oracle'dan yükledim ve sonra JAVA_HOME'u /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home olarak sıfırladım.
Eminim daha iyi bir yol var ama beni çalıştırıp çalıştırıyorum.
hughsmac: ~ hbrien $ echo $ JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
OSX Yosemite, ZSH ve Java SE Runtime Environment 8, şunları yapmak zorundaydım:
$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin
ve ~ / .zshrc içinde JAVA_HOME değerini
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/Current"
Mac OS'umu yükselttikten ve aşağıdakiler benim için çalıştıktan sonra aynı sorunu aldım:
cmd> vi ~ / .bash_profile
JAVA_HOME için satır ekleyin / güncelleyin: export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.7.0_15.jdk / Contents / Home"
cmd> source ~ / .bash_profile veya yeni bir terminal açın
Ben jdk sürümü farklı olabilir, bu yüzden sadece / Library / Java / JavaVirtualMachines /
Mac OS X (Yosemite) altında birden fazla JDK sürümüne ihtiyacınız varsa, aralarında otomatik geçiş için bazı komut dosyaları eklemek yardımcı olabilir.
Yaptığınız ~ / .bash_profile dosyanızı düzenlemek ve aşağıdakileri eklemek:
function setjdk() {
if [ $# -ne 0 ]; then
removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
if [ -n "${JAVA_HOME+x}" ]; then
removeFromPath $JAVA_HOME
fi
export JAVA_HOME=`/usr/libexec/java_home -v $@`
export PATH=$JAVA_HOME/bin:$PATH
fi
}
function removeFromPath() {
export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}
setjdk 1.7
Ne komut yaptığı ilk remove diğer JDK sürümleri için olan PATH onlar bizim yeni JDK sürümü engel olmaz böylece. Ardından , yüklü JDK sürümlerini listeleyen bir komut olan / usr / libexec / java_home 'un akıllıca kullanılmasını sağlar . -V argüman anlatır JAVA_HOME örneğin 1.7 için, sağlanan sürümü ile JDK yolunu dönmek için. Ayrıca güncelleme PATH yeni bulunan bin dizinine noktaya java_home dizininde. Sonunda fonksiyonu kullanarak sadece
setjdk 1.7
1.7 şubesinin en son kurulu JDK sürümünü seçer. Belirli bir sürümü seçmek için
setjdk 1.7.0_51
yerine. / Usr / libexec / java_home -V komutunu çalıştırınSürümlerin nasıl seçileceği hakkında daha fazla bilgi için .
Not Kaydettikten sonra ~ / .bash_profile kaynağını almayı unutmayın .
Bu cevap Aslan ile değil Dağ Aslanı ile ilgilidir . Bunu AWS Komut Satırı Araçları için yapmam gerekiyordu. AWS belgelerine göre koşma which java
geri döner /usr/bin/java
.
Yani, set JAVA_HOME=/usr
skinTenimde .bashrc
.
Görünüşe göre, hepsini çalıştıran /usr/bin/java
sembolik bir bağlantı /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
.
Güncelleme
Aşağıdaki yorumda belirtildiği gibi, ortam değişkeni AWS Komut Satırı Araçları dışındaki şeyler tarafından kullanılacaksa , bu JAVA_HOME
değer ideal bir çözüm değildir JAVA_HOME
. Bununla birlikte, belgelerinde verildiği gibi AWS Komut Satırı Araçları için iyi çalışır.
Mac Yosemite için,
JDK 1.7.0_xx kullanıyor
$ ls -ltar /usr/bin/java
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_xx.jdk/Contents/Home
Balık kullanıyorum High Sierra 10.13.4 üzerinde kabuk ve demlemek aracılığıyla Java yüklü.
Sistemimde doğru şekilde ayarlamak için otomatik olarak ayarlanmadı : Çalıştığım:
set -U JAVA_HOME (/usr/libexec/java_home)
Sadece dosyada 1.8 jdk sürümü java_home ayarlayın netbeans.conf
:
/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf
uncomment hattı:
netbeans_jdkhome="path/to/jdk"
ve benim durumumda 1.8 jdk'nizin yolunu ayarlayın:
netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
Bu yaklaşım, Mac OS'de birkaç jdk sürümüne sahip olmanızı sağlar
mac kullanıcısı için. java 8 eklemeli
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
# JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
java 6:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
# JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home