Mac OS X'te Java Nerede Yüklü?


728

Java 7u17'yi Mac OS 10.7.5'e buradan indirdim ve başarıyla yükledim. Bazı JNI programlama yapmak için Mac'inde Java'nın nerede yüklü olduğunu bilmem gerekiyor.

/Library/Java/JavaVirtualMachines/Klasörün içinde bir klasör 1.7.0.jdkveya başka bir şey olacağını düşündüm , ama sonra klasörün boş olduğunu buldum. Bu ls /Library/Java/JavaVirtualMachines/Terminalde çalışarak doğrulandı . Başka bir yere kurulmuş olup olmadığını öğrenmek için aramayı denedim, ama bu bir şey açıyor gibi görünmüyor.

Birisi bana Mac bilgisayarımda Java'nın yüklü olduğunu söyleyebilir mi?


12
Seçmenleri / yeniden katılımcıları kapatmak için - bu soru açıkça konu dışı değildir (programcılar tarafından yaygın olarak kullanılan araçlar hakkında sorular) . Ne yazık ki, meta tarafından bandwagoned .
Rob

Yanıtlar:


1386

Java 1.8 giriş dizininizin /usr/libexec/java_home -v 1.8nerede olduğunu bulmak için terminal kabuğundaki komutu kullanın

Yalnızca en son Java sürümünüzün giriş dizinini bulmak istiyorsanız sürümü atlayın. Örneğin/usr/libexec/java_home


Bu soruyu aldım çünkü programımın ilk satırında "import java.util. *." Hatası alıyordum çünkü mac'umda eclipse'de bir hata alıyordum. Java yolunun doğru ayarlanmadığından veya bir şeyden (bu daha önce bir kez ayarlamış olmama rağmen) kuvvetle şüpheliyim. Bu cevapta komutu girdim ve bir dizin aldım. Bu dizini "Yerel kütüphane klasör yapılandırması" penceresindeki metin kutusuna yapıştırabilir miyim? Yoksa bu dizin başka bir yere mi ait?
OKGimmeMoney

47
export JAVA_HOME=`/usr/libexec/java_home`.Bash_profile dosyasına eklendi , böylece JAVA_HOME her zaman ayarlandı (libexec komutunun arkasındaki geriye dönük işaretleri not edin)
Steve Henty

JDK'nın mac'unuzda yüklü olup olmadığını öğrenmek istiyorsanız, sürüm numarasını atlayın ve terminalden çalıştırın: $ echo $ (/ usr / libexec / java_home)
Donato

3
Mac 10.12.3'te, java'nın /usr/libexec/java_home -- ven son sürümünü göstermeliyiz
klion26

117

echo $(/usr/libexec/java_home)Java'nın yüklendiği yolu bilmek için terminalinizdeki komutu kullanabilirsiniz .


7
Yüklü JVM sürümünden bağımsız olduğu için bu çözümü kabul edilen yanıttan daha iyi seviyorum.
Alexandre Santos

1
Bu, Java tarafından yüklenen java 8 sürümümü bulamadı.
Antoine Lizée

13
Neden echo $(...)oradasın? Sadece /usr/libexec/java_homeaynısını yapmakla kalmıyor mu ?
Paŭlo Ebermann

1
Kabul edilen cevap benim için işe yaramadı ama bu işe yaradı! (Ben normalde bir mac / unix kullanıcısı değilim)
Roel

@ PaŭloEbermann Dolar işareti ve parantez olmadan benim için çalışmıyor.
Nikola Stojaković

80

Aslında Java 7 JRE'yi yükledim, JDK değil. Doğru indirme bağlantısı burada . Yüklemeden sonra jdk1.7.0jdkJavaVirtualMachines dizinde görünür.


49
Benim için altındaydı /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(JDK 1.6 için yolun olduğunu bilerek /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/) :
Zakaria

Çok teşekkürler! JRE'nin de xD tarafından yüklendiğini fark etmedim
Oliver Ni

1
~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin
Oleksii Kyslytsyn

34

Sadece JRE'yi yüklerseniz, şuraya konur gibi görünüyor:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2
Mevcut olana güvenmemelisiniz. JRE'ye ihtiyacınız varsa, kendi uygulamanızın içinde paketleyin.
swingler

JAVA_HOME'u boşluk karakteri içeren bir yolla ayarlamak zor!
Başaramadım

bir yere bu dizine bir bağlantı oluşturabilir ve JAVA_HOME'u bu bağlantıya ayarlayabilirsiniz
Kuba

"Java" Sistem Tercihleri ​​panelinin kurulduğu yer burasıdır.
David Avendasora

2
@AntoineRosset, şu şekilde ayarlayabilirsiniz:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda

24

Yüklü javaları bulmak için unix bulma işlevini kullanın ...

sudo find / -name java

19
Genel olarak erişilebilir komutlar için find komutunu çalıştırmak için sudo'ya ihtiyacınız yoktur. Erişilemeyen dizinlerle ilgili hata mesajlarını görmek istemiyorsanız, gereksiz yere kök privs kullanmak yerine mesajlardan kurtulun. Her zaman sudo kullanmak kötü bir alışkanlıktır. Stderr'ı / dev / null dizinine şu şekilde yönlendirin: find / -name java 2> / dev / null
Walter Underwood

1
Erişilemeyen dizinlerin altına bakmam gerekirse ne yapmalıyım?
serkan

2
Walter'ın anlamı, javaikili programın dünya tarafından okunabilir olacağı için sudogerekli değildir. Cevabınız hala faydalı :)
Jared Beck

Evet, sadece src.zip'i (java jdk'nin kaynak kodu) bulmak için kullandım
Dinis Cruz

~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin
Oleksii Kyslytsyn

23

Bunu deneyin, Mac OS X'te java yüklü yolu bulmanın kolay yolu,

Goto

1) / Kütüphane yani Macintosh HD / Kütüphane

resim açıklamasını buraya girin

2) Java klasörünü bulduğumuz kitaplık üzerine tıklayın.

resim açıklamasını buraya girin

3) Yani son yol

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Umarım bu birisine yardım eder.


1
JDK'yi açıkça bir IDE'den göstermeniz gerektiğinde oldukça yararlıdır. Teşekkürler
Shwetabh Shekhar

Ne kadar yoğunum? Terminalim / Library / Java / JavaVirtualMachines / içine 2 jdk yüklü olduğunu söylüyor ama bulucuda bu dizine gittiğimde onları bulamıyorum ... Ne kadar yoğun alabilirim ...
SoftwareSavant

@SoftwareSavant, Lütfen ref stackoverflow.com/a/14875241 cevap, Size yardımcı olabilir.
Jaywant Khedkar

19

Mac OS'nin Java paket yapısı Windows'dan biraz farklıdır. Bir geliştiricinin ayarlaması PATHve ihtiyaç duyduğu için bunun için üzülmeyin JAVA_HOME.

Yani .bash_profilesette JAVA_HOMEve PATHaşağıdaki gibi. Bu örnek Java 6 içindir:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
Bu, diğer her şeyi yoldan kaldırır mı? Bunu yalnızca Java kullanıyorsanız ve sisteminizde başka bir şey kullanmıyorsanız yapın.
Paŭlo Ebermann

~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin.
Oleksii Kyslytsyn

17

Yazarsanız

java -verbose 

Bu ayrıca kavanozların yüklendiği yeri ve dolayısıyla da java yolunu verir.


~ / .Bash_profile dosyasına JAVA_HOME = $ (/ usr / libexec / java_home) ekledim.
Oleksii Kyslytsyn

8

Düzenlendi: Geçerli java sürümünün takma adı /Library/Java/Home

Daha fazla bilgi için: bir bağlantı


Bu, en son sürüm için takma ad olacaktır ve yüklendikten sonra Java 7 SDK'yı doğru bir şekilde gösterecektir.
Thunderforge

1
Bu bağlantı yalnızca eski amaçlar için mevcuttur ve Java 7 yüklenerek güncellenmez. Bu yolu kullanmayın.
swingler

~ / .Bash_profile adresindeki JAVA_HOME = $ (/ usr / libexec / java_home) dosyasını güncelledim.
Oleksii Kyslytsyn

8

sadece /Library/Java/JavaVirtualMachines/
Klasöre Git -> Finder'a Git yazın


Tamam, bunu denedim ve dizine gitmeyi başardım. Neden Finder'da bu klasöre normal olarak gidemiyorum? Bu sadece Apple çok can sıkıcı mı ... Ayrıca ekstra can sıkıcı, Gradle sürüm 4.3, Java 8 dışında herhangi bir Java sürümü ile çalışmaz
SoftwareSavant

~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin
Oleksii Kyslytsyn

6

Ben sadece Java SE 7 sürüm 21 için JDK yükledim ve Apple'ın Java 6 farklı bir dizinde yüklü bulundu. / Kütüphane / Java ... yerine / Sistem / Kütüphane / Java ... / Usr / libexec / java_home -v 1.7 ile -v 1.6 arasında çalışmak bunu doğrulayacaktır.


~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) dışa aktar
Oleksii Kyslytsyn

6

Serkan'ın çözümünü denedim, java 7'nin OS X Mavericks'teki yerini buldu. içinde bulunuyor "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" ama varsayılan JDK yapmak için ana dizinde .bash_profile JAVA_HOME sistem değişkenini ayarlamak zorunda kaldım, "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" bu yüzden serkan'ın fikri sayesinde şimdi çalışıyor ve çalışıyor


~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin.
Oleksii Kyslytsyn

5

İçin :

  • OS X: 10.11.6

  • Java: 8

@Morrie'nin cevabını onaylıyorum.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Ancak konteyner çalıştırıyorsanız hayatınız daha kolay olacak


2
Bunun bir yorum olması gerektiğini düşünüyorum.
Thunderforge

1
Bence, çünkü 'ihracat JAVA_HOME =' olan bir Katma değer var. ... Sen ne dersin @Thunderforge
Abdennour TOUMI

~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) verin.
Oleksii Kyslytsyn

3

tip which javamonte edilmiş olduğu yere göstermek için terminalde.


1
Evet, ~ / .bash_profile dizinine JAVA_HOME = $ (/ usr / libexec / java_home) verin.
Oleksii Kyslytsyn

-1

Sistem Tercihleri, ardından Java kontrol paneli, ardından Java ve Görünüm, şu anda yüklü olan varsayılan JRE'nin tam yerini gösterecektir.


~ / .bash_profile adresinden JAVA_HOME = $ (/ usr / libexec / java_home) dışa aktar
Oleksii Kyslytsyn
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.