Hỗ trợ nhiều phiên bản Java trên vị trí OS X và JAVA_HOME


12

Tôi biết có thể có nhiều phiên bản Java trên OS X nhưng tôi thấy khó hiểu cách thức hoạt động của nó.

Tôi đã nâng cấp lên Mountain Lion và bây giờ echo $JAVA_HOMEtrống rỗng.

Tuy nhiên trong /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current

Khi tôi đi vào 1.4.2 và tôi thực thi java - versionhoặc./java -version

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.6.0 _33-b03-424-11M3720)

Vậy tại sao tất cả các phiên bản đó được sử dụng nếu chúng có cùng phiên bản Java?

Sau đó, tôi đã tải xuống JDK 7 từ Oracle và cài đặt nó.

Trường hợp một JDK mới thường được cài đặt?

Và câu hỏi cuối cùng: Làm thế nào tôi có thể chọn phiên bản nào sẽ chạy theo mặc định bởi tất cả các ứng dụng?

Trong Win. Tôi đặt JAVA_HOMEcho C:/ProgramFiles/Java/.… tôi đặt trong đường dẫn: vị trí để JAVA_HOME/binvà đó là nó.


1
Có thể quan tâm vì gần đây Oracle sử dụng thuật ngữ JRE để mô tả trình cắm thêm applet Java một mình (khó hiểu!); và vì người dùng OS X hiện có thể sử dụng đồng thời hai phiên bản khác nhau (một phiên bản cho trình cắm, một phiên bản khác cho các ứng dụng không sử dụng trình cắm): Làm cách nào để quản lý tốt nhất các phiên bản java khác nhau trên Mountain Lion?
Graham Perrin

Câu trả lời:


3

Nội dung của / System / L Library / Frameworks / JavaVM.framework / Vionsions

Đối với hầu hết các trường hợp sử dụng, CurrentJDKnên cung cấp chức năng của các phiên bản hiện tại quá khứ của JDK.

Không phải tất cả các phiên bản trước đây, nhưng các phiên bản được yêu cầu phổ biến nhất:

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$ 

14

Thích phiên bản Java

Sử dụng Tùy chọn Java theo cách thông thường.

Tùy thuộc vào những gì bạn đã cài đặt ngoài phân phối Java của Apple, tab đầu tiên của tiện ích có thể xuất hiện một chút khác nhau.

Một ví dụ, không có các tùy chọn quen thuộc cho các applet và Java Web Start:

Ảnh chụp màn hình của Tùy chọn Java

Có một số đọc nền về cách thức này hoạt động ở cấp dòng lệnh. Công cụ dòng lệnh java_home báo cáo lại cài đặt ưu tiên này.

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

Các / usr / bin / java placeholder ứng dụng tận dụng các thiết lập này chạy phiên bản ưa thích của Java.

$ 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)

Cuối cùng, khi định cấu hình JAVA_HOME trong tập lệnh khởi chạy cho Tomcat hoặc Maven, bạn có thể nối vào hệ thống tùy chọn:

export JAVA_HOME=`/usr/libexec/java_home`

Câu trả lời ở nơi khác lưu ý rằng Java có thể được cài đặt tại một số đường dẫn - 

  • / Hệ thống / Thư viện / Java / JavaVirtualMachines
  • / Thư viện / Java / JavaVirtualMachines
  • ~ / Thư viện / Java / JavaVirtualMachines

- nhưng đối với những gì hiện được mô tả trong câu hỏi ở đây, JDK từ Oracle trên Mountain Lion, chỉ có một con đường có khả năng .


Cảm ơn đã chỉnh sửa cộng đồng, nên có một liên kết khác cho việc đọc nền?
Graham Perrin

2
Tùy chọn Java không còn được hỗ trợ và thực sự bị xóa khi áp dụng bản cập nhật Java 2012-006 . Đây là một phần trong việc Apple chuyển sang cung cấp và hỗ trợ Java.
BryanH

@BryanH cảm ơn - câu trả lời này đã được đưa ra vài tháng trước khi Java cho OS X 2012-006 - xem câu hỏi được liên kết. Ngoài ra, xin lưu ý rằng trong khi Apple tránh xa các bản phân phối của JRE, chúng ta không nên cho rằng Apple sẽ ngừng hỗ trợ Java.
Graham Perrin

Vâng cảm ơn. Tôi đoán tôi nên làm rõ rằng "hỗ trợ" có nghĩa là Apple không còn cung cấp hoặc trả lời các câu hỏi kỹ thuật về Máy ảo Java cho OSX. Tùy thuộc vào Oracle (hoặc một bên thứ ba khác) để viết và duy trì JVM.
BryanH

5

Mac OS X 10.8.2 Build 12C60 Tùy chọn Java không hiển thị nữa các phiên bản cũ hơn.


3

Các đường dẫn được sử dụng để cài đặt JDK

Chạy:

ls -l /Library/Java/JavaVirtualMachines

Các đường dẫn khác có thể được sử dụng nhưng đối với JDK hiện tại từ Oracle, được cài đặt vào Mountain Lion, có thể bạn sẽ tìm thấy .jdkgói ở đường dẫn đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.