lưu ý: Các giải pháp này hoạt động cho các phiên bản Java khác nhau bao gồm Java 8 và Java 13 mới và cho bất kỳ phiên bản Java nào trước đây được các trình quản lý phiên bản liệt kê. Điều này bao gồm các JDK thay thế từ OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal và hơn thế nữa. Dễ dàng làm việc với Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 và Java 13!
Bạn có một vài tùy chọn về cách thực hiện cài đặt cũng như quản lý chuyển đổi JDK. Việc cài đặt có thể được thực hiện bằng Homebrew, SDKMAN , Jabba hoặc cài đặt thủ công. Việc chuyển đổi có thể được thực hiện bằng JEnv , SDKMAN , Jabba hoặc bằng tay bằng cách cài đặt JAVA_HOME
. Tất cả những điều này được mô tả dưới đây.
Cài đặt
Đầu tiên, cài đặt Java bằng bất kỳ phương thức nào bạn thích bao gồm Homebrew, SDKMAN hoặc cài đặt thủ công tệp tar.gz. Ưu điểm của cài đặt thủ công là vị trí của JDK có thể được đặt ở vị trí được chuẩn hóa cho Mac OSX.
Cài đặt với SDKman
Đây là một mô hình đơn giản ở chỗ nó xử lý cả cài đặt và chuyển đổi phiên bản, với một cảnh báo rằng nó sẽ cài đặt JDK vào một thư mục không chuẩn.
< xem bên dưới "Cài đặt và chuyển đổi phiên bản với SDKMAN" >
Cài đặt bằng Jabba
Đây cũng là một mô hình đơn giản trong đó cả cài đặt và chuyển đổi phiên bản đều được xử lý bởi cùng một công cụ. Các cài đặt được thực hiện cho một thư mục không chuẩn.
< xem bên dưới "Cài đặt và chuyển đổi phiên bản với Jabba" >
Cài đặt thủ công từ trang tải xuống OpenJDK:
Tải xuống OpenJDK cho Mac OSX từ http://jdk.java.net/ (ví dụ Java 13 )
Hủy lưu trữ tar OpenJDK và đặt thư mục kết quả (nghĩa là jdk-13.jdk
) vào /Library/Java/JavaVirtualMachines/
thư mục của bạn vì đây là vị trí chuẩn và dự kiến của các bản cài đặt JDK. Bạn cũng có thể cài đặt bất cứ nơi nào bạn muốn trong thực tế.
Cài đặt với Homebrew
Phiên bản Java có sẵn trong Homebrew Cask trước ngày 3 tháng 10 năm 2018 thực sự là JVM của Oracle. Tuy nhiên, bây giờ nó đã được cập nhật lên OpenJDK. Hãy chắc chắn cập nhật Homebrew và sau đó bạn sẽ thấy phiên bản mới nhất có sẵn để cài đặt.
cài đặt Homebrew nếu bạn chưa có. Hãy chắc chắn rằng nó được cập nhật:
brew update
Thêm vòi nhấn, nếu bạn chưa có (hoặc bạn không thấy các phiên bản Java cũ hơn nữa ở bước # 3):
brew tap homebrew/cask-versions
và đối với các phiên bản AdoptOpenJDK , hãy thêm vào đó:
brew tap adoptopenjdk/openjdk
Các nhóm này thay đổi phiên bản Java của họ thường xuyên và có thể có các vòi khác ngoài đó với các phiên bản Java bổ sung.
Tìm phiên bản có thể cài đặt:
brew search java
hoặc cho các phiên bản AdoptOpenJDK:
brew search jdk
Kiểm tra các chi tiết trên phiên bản sẽ được cài đặt:
brew cask info java
hoặc cho phiên bản AdoptOpenJDK:
brew cask info adoptopenjdk
Cài đặt một phiên bản cụ thể của JDK như java11
, adoptopenjdk8
hoặc chỉ java
hoặc adoptopenjdk
cho hiện hành. Ví dụ:
brew cask install java
Bạn cũng có thể sử dụng đường dẫn đủ điều kiện đến các phiên bản cũ hơn:
brew cask install homebrew/cask-versions/java11
Và chúng sẽ được cài đặt vào /Library/Java/JavaVirtualMachines/
vị trí truyền thống dự kiến trên Mac OSX.
Các tùy chọn cài đặt khác:
Một số hương vị khác của openJDK là:
Các bản dựng OpenJDK được chứng nhận của Java Zulu Systems có thể được cài đặt bằng cách làm theo các hướng dẫn trên trang web của họ .
Zulu® là bản dựng OpenJDK được chứng nhận hoàn toàn tuân thủ tiêu chuẩn Java SE. Zulu là nguồn mở 100% và có thể tải xuống miễn phí. Giờ đây, các nhà phát triển Java, quản trị viên hệ thống và người dùng cuối có thể tận hưởng toàn bộ lợi ích của Java nguồn mở với tính linh hoạt triển khai và kiểm soát thời gian nâng cấp.
Các bản dựng Amazon Correto OpenJDK có thể dễ dàng sử dụng gói cài đặt cho phiên bản 8 hoặc phiên bản 11 (sắp có phiên bản khác) và cài đặt vào/Library/Java/JavaVirtualMachines/
thư mụcchuẩntrên Mac OSX.
Amazon Corretto là một bản phân phối miễn phí, đa nền tảng, sẵn sàng sản xuất của Bộ công cụ phát triển Java mở (OpenJDK). Corretto đi kèm với sự hỗ trợ dài hạn sẽ bao gồm cải tiến hiệu suất và sửa lỗi bảo mật. Amazon điều hành Corretto nội bộ trên hàng ngàn dịch vụ sản xuất và Corretto được chứng nhận là tương thích với tiêu chuẩn Java SE. Với Corretto, bạn có thể phát triển và chạy các ứng dụng Java trên các hệ điều hành phổ biến, bao gồm Linux, Windows và macOS.
JDK của tôi đâu?!?!
Để tìm các vị trí của Java JDK được cài đặt trước đó tại các vị trí hệ thống mặc định, hãy sử dụng:
/usr/libexec/java_home -V
Phù hợp với các máy ảo Java (6):
13, x86_64: "OpenJDK 13" /L Library / Java / JavaVirtualMachines / openjdk-13.jdk /Contents / Home 12, x86_64: "OpenJDK 12" / Library / Java / Java .jdk / Nội dung / Trang chủ
11, x86_64: "Java SE 11"
/L Library / Java / JavaVirtualMachines / jdk-11.jdk / Content / Home 10.0.2, x86_64: "Java SE 10.0.2" / Library / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: "Java SE 9" /
L Library / Java / JavaVirtualMachines / jdk-9.jdk / Content / Home 1.8.0_144, x86_64: "Java SE 8" / Thư viện /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Bạn cũng có thể báo cáo vị trí của một phiên bản Java cụ thể bằng cách sử dụng -v
. Ví dụ cho Java 13:
/usr/libexec/java_home -v 13
/ L Library / Java / JavaVirtualMachines / jdk-13.jdk / Content / Home
Biết vị trí của JDK đã cài đặt cũng hữu ích khi sử dụng các công cụ như JEnv hoặc thêm cài đặt cục bộ vào SDKMAN hoặc liên kết JDK hệ thống trong Jabba - và bạn cần biết nơi tìm chúng.
Nếu bạn cần tìm JDK được cài đặt bởi các công cụ khác, hãy kiểm tra các vị trí sau:
- SDKman cài đặt để
~/.sdkman/candidates/java/
- Jabba cài đặt để
~/.jabba/jdk
Chuyển đổi phiên bản thủ công
Tệp thực thi Java là một trình bao bọc sẽ sử dụng bất kỳ JDK nào được cấu hình JAVA_HOME
, vì vậy bạn có thể thay đổi điều đó để thay đổi JDK nào đang được sử dụng.
Ví dụ: nếu bạn đã cài đặt hoặc hủy cài đặt JDK 13 thành /Library/Java/JavaVirtualMachines/jdk-13.jdk
nếu đó là số phiên bản cao nhất thì nó sẽ là mặc định, nếu không bạn có thể chỉ cần đặt:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Và bây giờ, bất cứ thứ gì có thể thực thi được trong Java đều có trong đường dẫn sẽ thấy điều này và sử dụng JDK chính xác.
Sử dụng /usr/libexec/java_home
tiện ích như được mô tả trước đây giúp bạn tạo bí danh hoặc chạy các lệnh để thay đổi các phiên bản Java bằng cách xác định vị trí của các bản cài đặt JDK khác nhau. Ví dụ: tạo bí danh shell trong .profile
hoặc .bash_profile
để thay đổi JAVA_HOME
cho bạn:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
# default to Java 13
java13
Sau đó, để thay đổi phiên bản, chỉ cần sử dụng bí danh.
java8
java -version
phiên bản java "1.8.0_144"
Tất nhiên, cài đặt JAVA_HOME
cũng hoạt động bằng tay!
Chuyển đổi phiên bản với JEnv
JEnv hy vọng các JDK của Java đã tồn tại trên máy và có thể ở bất kỳ vị trí nào. Thông thường, bạn sẽ tìm thấy Java JDK đã cài đặt/Library/Java/JavaVirtualMachines/
. JEnv cho phép thiết lập phiên bản toàn cầu của Java, một phiên bản cho shell hiện tại và phiên bản cục bộ trên mỗi thư mục, tiện dụng khi một số dự án yêu cầu các phiên bản khác với các phiên bản khác.
Cài đặt JEnv nếu bạn chưa có, hướng dẫn trên trang web http://www.jenv.be/ để cài đặt thủ công hoặc sử dụng Homebrew.
Thêm bất kỳ phiên bản Java nào vào JEnv ( điều chỉnh thư mục nếu bạn đặt cái này ở nơi khác ):
jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Đặt phiên bản toàn cầu của bạn bằng lệnh này:
jenv global 13
Bạn cũng có thể thêm các phiên bản hiện có khác bằng cách sử dụng jenv add
tương tự và liệt kê những phiên bản có sẵn. Ví dụ: Java 8:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
Xem tài liệu JEnv để biết thêm các lệnh. Bây giờ bạn có thể chuyển đổi giữa mọi phiên bản Java (Oracle, OpenJDK, khác) bất cứ lúc nào cho toàn bộ hệ thống, cho hệ vỏ hoặc cho mỗi thư mục cục bộ.
Để giúp quản lý JAVA_HOME
trong khi sử dụng JEnv, bạn có thể thêm plugin xuất để thực hiện việc này cho bạn.
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
Plugin xuất có thể không điều chỉnh JAVA_HOME
nếu nó đã được đặt, vì vậy bạn có thể cần phải xóa biến này trong hồ sơ của mình để JEnv có thể quản lý nó.
Bạn cũng có thể sử dụng jenv exec <command> <parms...>
để chạy các lệnh đơn JAVA_HOME
và PATH
đặt chính xác cho một lệnh đó, có thể bao gồm mở một shell khác.
Cài đặt và chuyển đổi phiên bản với SDKMAN
SDKMAN hơi khác một chút và xử lý cả cài đặt và chuyển đổi. SDKMAN cũng đặt JDK đã cài đặt vào cây thư mục riêng của nó, thường là~/.sdkman/candidates/java
. SDKMAN cho phép thiết lập phiên bản mặc định toàn cầu và phiên bản dành riêng cho hệ vỏ hiện tại.
Cài đặt SDKMAN từ https://sdkman.io/install
Liệt kê các phiên bản Java có sẵn để đảm bảo bạn biết ID phiên bản
sdk list java
Cài đặt một trong những phiên bản đó, ví dụ, Java 13:
sdk install java 13.0.0-open
Biến 13 thành phiên bản mặc định:
sdk default java 13.0.0-open
Hoặc chuyển sang 13 cho phiên:
sdk use java 13.0.0-open
Khi bạn liệt kê các phiên bản có sẵn để cài đặt bằng lệnh list, bạn sẽ thấy rất nhiều bản phân phối Java:
sdk list java
Và cài đặt các phiên bản bổ sung, chẳng hạn như JDK 8:
sdk install java 8.0.181-oracle
SDKMAN có thể hoạt động với các phiên bản hiện có được cài đặt trước đó. Chỉ cần thực hiện cài đặt cục bộ cho nhãn phiên bản của riêng bạn và vị trí của JDK:
sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Và sử dụng nó một cách tự do:
sdk use java my-local-13
Thông tin thêm có sẵn trong Hướng dẫn sử dụng SDK cùng với các SDK khác mà nó có thể cài đặt và quản lý.
SDKMAN sẽ tự động quản lý PATH
và JAVA_HOME
cho bạn khi bạn thay đổi phiên bản.
Cài đặt và chuyển đổi phiên bản với Jabba
Jabba cũng xử lý cả cài đặt và chuyển đổi. Jabba cũng đặt JDK đã cài đặt vào cây thư mục riêng của nó, thường là~/.jabba/jdk
.
Cài đặt Jabba bằng cách làm theo các hướng dẫn trên trang chủ .
Danh sách JDK có sẵn
jabba ls-remote
Cài đặt Java JDK 12
jabba install openjdk@1.12.0
Sử dụng nó:
jabba use openjdk@1.12.0
Bạn cũng có thể bí danh tên phiên bản, liên kết đến các JDK hiện có đã được cài đặt và tìm một hỗn hợp các JDK thú vị như GraalVM, Adopt JDK, IBM JDK, v.v. Hướng dẫn sử dụng đầy đủ cũng có sẵn trên trang chủ.
Jabba sẽ tự động quản lý của bạn PATH
và JAVA_HOME
cho bạn khi bạn thay đổi phiên bản.