Beberapa versi Java mendukung lokasi OS X dan JAVA_HOME

12

Saya tahu adalah mungkin untuk memiliki beberapa versi Java pada OS X tetapi saya merasa sulit untuk memahami cara kerjanya.

Saya meningkatkan ke Mountain Lion dan sekarang echo $JAVA_HOMEkosong.

Namun dalam /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

Ketika saya masuk ke 1.4.2 dan saya mengeksekusi java - versionatau./java -version

Java (TM) SE Runtime Environment (build 1.6.0 _33-b03-424-11M3720)

Jadi mengapa semua versi itu digunakan untuk jika mereka memiliki versi Java yang sama?

Kemudian saya mengunduh JDK 7 dari Oracle dan menginstalnya.

Di mana JDK baru biasanya dipasang?

Dan pertanyaan terakhir: Bagaimana saya bisa memilih versi mana yang harus dijalankan secara default oleh semua aplikasi?

Dalam Menang. Saya mengatur JAVA_HOMEke C:/ProgramFiles/Java/.… saya letakkan di Path: lokasi ke JAVA_HOME/bindan hanya itu.

Cris
sumber
1
Mungkin menarik karena Oracle baru-baru ini menggunakan istilah JRE untuk menggambarkan plug-in Java applet saja (membingungkan!); dan karena pengguna OS X sekarang dapat menggunakan dua versi berbeda secara bersamaan (satu versi untuk plug-in, versi yang berbeda untuk aplikasi yang tidak menggunakan plug-in): Bagaimana cara terbaik mengelola versi java yang berbeda di Mountain Lion?
Graham Perrin

Jawaban:

3

Isi dari /System/Library/Frameworks/JavaVM.framework/Versions

Untuk sebagian besar kasus penggunaan, CurrentJDKharus menyediakan fungsionalitas versi JDK saat ini dan yang lalu.

Tidak semua versi sebelumnya, tetapi versi yang paling umum diperlukan:

sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8
BuildVersion:   12A269
sh-3.2$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 17 Jul 07:47 1.6.0 -> CurrentJDK
drwxr-xr-x  8 root  wheel  272 17 Jul 07:48 A
lrwxr-xr-x  1 root  wheel    1 17 Jul 07:47 Current -> A
lrwxr-xr-x  1 root  wheel   59 17 Jul 07:47 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
sh-3.2$ 
Graham Perrin
sumber
14

Lebih suka versi Java

Gunakan Preferensi Java dengan cara biasa.

Bergantung pada apa yang telah Anda instal sebagai tambahan pada distribusi Java dari Apple, tab pertama dari utilitas mungkin tampak sedikit berbeda.

Contoh, tanpa opsi yang dikenal untuk applet dan Java Web Start:

Cuplikan layar Preferensi Java

Ada beberapa bacaan latar belakang tentang cara kerjanya di level baris perintah. Alat baris perintah java_home melaporkan kembali pengaturan preferensi ini.

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home

The / usr / bin / java placeholder aplikasi yang menggunakan pengaturan ini menjalankan versi pilihan dari Jawa.

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

Akhirnya ketika mengkonfigurasi JAVA_HOME dalam skrip peluncuran untuk Tomcat atau Maven, Anda dapat terhubung ke sistem preferensi:

export JAVA_HOME=`/usr/libexec/java_home`

Jawaban di tempat lain mencatat bahwa Java dapat diinstal di beberapa jalur - 

  • / Sistem / Perpustakaan / Java / JavaVirtualMachines
  • / Perpustakaan / Java / JavaVirtualMachines
  • ~ / Library / Java / JavaVirtualMachines

- tetapi untuk apa yang saat ini dijelaskan dalam pertanyaan di sini, JDK dari Oracle di Mountain Lion, hanya satu jalur yang mungkin .

Graham Perrin
sumber
Terima kasih atas pengeditan komunitas, haruskah ada tautan lain untuk pembacaan latar belakang?
Graham Perrin
2
Preferensi Java tidak lagi didukung dan benar-benar dihapus ketika seseorang menerapkan pembaruan Java 2012-006 . Ini adalah bagian dari langkah Apple menjauh dari menyediakan dan mendukung Java.
BryanH
@BryanH terima kasih - jawaban ini diberikan beberapa bulan sebelum Java untuk OS X 2012-006 - lihat pertanyaan terkait. Juga harap dicatat bahwa sementara Apple menjauh dari distribusi JRE, kita tidak boleh berasumsi bahwa Apple akan berhenti mendukung Java.
Graham Perrin
Ya terima kasih. Saya kira saya harus mengklarifikasi bahwa "dukungan" berarti bahwa Apple tidak lagi menyediakan atau menjawab pertanyaan teknis tentang Java Virtual Machine untuk OSX. Terserah Oracle (atau pihak ketiga lain) untuk menulis dan memelihara kata JVM.
BryanH
5

Karena Mac OS X 10.8.2 Build 12C60 Java Preferences tidak lagi menampilkan versi yang lebih lama.

Carlo
sumber
3

Jalur yang digunakan untuk instalasi JDK

Lari:

ls -l /Library/Java/JavaVirtualMachines

Jalur lain mungkin digunakan tetapi untuk JDK saat ini dari Oracle, diinstal ke Mountain Lion, Anda mungkin akan menemukan .jdkbundel di jalur itu.

Graham Perrin
sumber