Cách cài đặt Java 8 trên máy Mac


993

Tôi muốn thực hiện một số chương trình với JavaFX mới nhất, yêu cầu Java 8. Tôi đang sử dụng IntelliJ 13 CE và Mac OS X 9 Mavericks. Tôi đã chạy trình cài đặt Java 8 của Oracle và các tệp trông giống như chúng đã kết thúc tại

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

nhưng các phiên bản trước đang ở

/System/Library/Java/JavaFrameworks/jdk1.6....

Không chắc chắn tại sao trình cài đặt mới nhất đưa cái này vào /Librarythay vì /System/Library(cũng không phải là sự khác biệt). Nhưng /usr/libexec/java_homekhông tìm thấy 1.8, vì vậy tất cả các bài đăng tôi đã tìm thấy về cách đặt phiên bản java hiện tại của bạn không hoạt động. Tôi đã thử thêm một liên kết tượng trưng để làm cho nó trông giống như 1.8 trong /System/Library...đường dẫn, nhưng nó không có ích. /usr/libexec/java_home -Vvẫn chỉ liệt kê Java 1.6 cũ.

Trớ trêu thay, bảng điều khiển "Java" trong Tùy chọn hệ thống chỉ hiển thị Java 1.8!

Tại sao trình cài đặt của Oracle không đặt nó ở nơi nó thực sự đi? Và làm thế nào tôi có thể làm việc xung quanh vấn đề này?


8
Nó "thực sự đi" nơi nó đã kết thúc - /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/. Phiên bản trước là nơi các phiên bản Java do Apple cung cấp đã đi và vì Apple không cung cấp Java nữa, vị trí cài đặt đã thay đổi.
awksp

Câu trả lời:


1888

Oracle có một hồ sơ kém để giúp dễ dàng cài đặt và định cấu hình Java, nhưng bằng cách sử dụng Homebrew , OpenJDK (Java 14) mới nhất có thể được cài đặt với:

brew cask install java

Đối với nhiều trường hợp sử dụng tùy thuộc vào phiên bản cũ hơn (thường là Java 8), dự án AdoptOpenJDK làm cho nó có thể với một bước bổ sung.

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

Người dùng hiện tại của Homebrew có thể gặp phải Error: Cask adoptopenjdk8 exists in multiple tapsdo cách giải quyết trước đó với các hướng dẫn khác nhau. Điều này có thể được giải quyết bằng cách chỉ định đầy đủ vị trí với brew cask install adoptopenjdk/openjdk/adoptopenjdk8.


89
Kể từ tháng 12 năm 2015, bây giờ không cần thiết phải cài đặt thùng bằng tay vì bây giờ nó là một phần của cài đặt của homebrew. Vì vậy, sau khi cập nhật homebrew qua brew update, bạn đã thiết lập để sử dụng brew cask.
davetw12

63
Cảm ơn, thật tuyệt vời khi quá trình cài đặt Java sử dụng các liên kết / tài liệu "chính thức" khủng khiếp đến mức nào.
enderland

15
@tandrewnichols Tôi mới chạy brew cask install javatrên El Capitan Mac và nó đang tải xuống jdk-8u112-macosx-x64.dmg.
Calrion

44
Error: Cask 'java8' is unavailable: No Cask with this name exists.
Elderry

87
Cách giải quyết hiện tại là brew tap homebrew/cask-versionsvà sử dụngbrew cask install homebrew/cask-versions/adoptopenjdk8
Sean Breckenridge

736

Lưu ý: Oracle Java 8/9/10 không còn có sẵn để tải xuống công khai (thay đổi giấy phép).

Đầu tiên cài đặt và cập nhật brew từ Terminal:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update

MỚI kể từ tháng 6 năm 2019

Để cài đặt JDK từ AdoptOpenJDK:

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11

Java 8:

brew cask install java8

Java mới nhất:

brew cask install java

3
Thật thú vị khi lưu ý rằng điều này không hiệu quả với tôi trên Mavericks, vì vậy nó không trả lời câu hỏi của OP, nhưng nó đã làm việc với tôi trên Captain, vì vậy nó rất hữu ích như một câu trả lời ..
Tommy

3
Tôi đã cài đặt homebrew mới trên máy OS X El Capitan mới và không phải chạy brew taplệnh trong câu trả lời ở trên. Các lệnh đầu tiên và thứ ba là đủ.
Adil Hussain

14
Error: Cask 'java8' is unavailable: No Cask with this name exists.
dùng924

4
$ brew cask install adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: caskroom/versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8. Tôi phải sử dụngbrew cask install adoptopenjdk/openjdk/adoptopenjdk8
roottraveller

5
brew tap homebrew/cask-versionsbrew cask install adoptopenjdk8làm việc cho tôi trên Hi Sierra 10.13.6
xjlin0

135

Java8 không còn khả dụng trên homebrew, brew install java8sẽ không hoạt động.

Thay vào đó, sử dụng:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Xem cam kết này để biết chi tiết kỹ thuật.

Xin lưu ý rằng bạn cũng có thể thấy các vấn đề xung quanh Cask adoptopenjdk8 exists in multiple taps. Đây là một vấn đề đã biết, hiện đang được xử lý, bạn có thể thấy ở đây:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

Đối với những người không muốn xem qua các chi tiết, đây là một bản tóm tắt:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup

2
Có sự khác biệt nào trong việc sử dụng AdoptOpenJDK/openjdkthay vì sử dụng khônghomebrew/cask-versions/adoptopenjdk8
Sean Breckenridge

Tôi nhận được sau khi tôi cố gắng trả lời của bạn: Cask adoptopenjdk8 tồn tại trong nhiều vòi: caskroom / phiên bản / adoptopenjdk8 adoptopenjdk / openjdk / adoptopenjdk8
Koray Tugay

@KorayTugay Tôi đã cập nhật câu trả lời, điều này sẽ giải quyết vấn đề của bạn!
Dave Kerr

1
@SeanBreckenridge - đội homebrew đang làm việc trên đó, tại thời điểm có vẻ như AdoptOpenJDK sẽ được sử dụng, nhưng vẫn có một số bất ổn, thấy vấn đề hiện đang mở github.com/AdoptOpenJDK/homebrew-openjdk/issues/106 để biết chi tiết!
Dave Kerr

1
brew cask install homebrew/cask-versions/adoptopenjdk8làm việc cho tôi
protoEveachion

123

Tôi mới làm điều này trên MBP của tôi và phải sử dụng

$ brew tap caskroom/versions
$ brew cask install java8

để có được java8 để cài đặt.


9
Nó giúp tôi cài đặt phiên bản cụ thể của java. Bây giờ khi java 9 không hoạt động, chạy "brew cask install java" cài đặt java 9. "brew cask install java8" không hoạt động với tôi cho đến khi tôi chạy "brew tap caskroom / Phiên bản".
làm gián đoạn

6
Có, brew tap caskroom/versionslà bắt buộc trước khi cài đặt java8
hendrix

11
hoặc chỉ brew install homebrew/cask-versions/java8để giành chiến thắng!
Naruto Sempai

4
Không thể cài đặt Java8 bằng cách sử dụng bia nữa vì thay đổi giấy phép của Oracle. Java8 không có sẵn để tải xuống công khai nữa.
Marcelo Xavier

2
Xem stackoverflow.com/a/55775566/9306378 nếu bạn vẫn muốn sử dụng java8. Lưu ý rằng điều này sử dụng OpenJDK mặc dù.
Polpetta

62

Một tùy chọn mà tôi bắt đầu thực sự thích để chạy các ứng dụng trên máy tính cục bộ của mình là sử dụng Docker. Bạn chỉ có thể chạy ứng dụng của mình trong bộ chứa JDK chính thức - có nghĩa là bạn không phải lo lắng về việc thiết lập mọi thứ trên máy cục bộ của mình (hoặc lo lắng về việc chạy nhiều phiên bản JDK khác nhau cho các ứng dụng khác nhau, v.v.)

Mặc dù điều này có thể không giúp bạn với các vấn đề cài đặt hiện tại của bạn, nhưng đây là một giải pháp có nghĩa là bạn có thể đẩy mạnh các vấn đề liên quan đến việc cố gắng để Java chạy chính xác trên máy dev của bạn!

Những lợi ích là:

  1. Không cần thiết lập bất kỳ phiên bản Java nào trên máy cục bộ của bạn (bạn sẽ chỉ chạy Java trong một thùng chứa mà bạn lấy từ Docker Hub)
  2. Rất dễ dàng để chuyển sang các phiên bản Java khác nhau bằng cách thay đổi thẻ trên vùng chứa.
  3. Các phụ thuộc dự án được cài đặt trong vùng chứa - vì vậy nếu bạn làm hỏng cấu hình của mình, bạn có thể chỉ cần nuke container và bắt đầu lại.

Một ví dụ rất đơn giản:

Tạo một Dockerfile:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • Ở đây chúng tôi đang chỉ định bộ chứa Java chạy phiên bản 8 của SDK ( java:8- để sử dụng Java 7, bạn chỉ có thể chỉ định java:7:)
  • Chúng tôi đang ánh xạ thư mục cục bộ với thư mục: /usr/src/myappbên trong container

Tạo một docker-compose.ymltệp:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

Bây giờ, giả sử chúng ta có tệp Java này:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

Vì vậy, chúng tôi có cấu trúc tập tin sau:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

Bạn có thể làm nhiều thứ Java khác nhau như:

biên dịch:

docker-compose run --rm java javac HelloWorld.java 
  • Bạn nên lưu ý rằng HelloWorld. Class xuất hiện trong thư mục hiện tại của bạn (đây là lý do chúng tôi đã ánh xạ thư mục hiện tại đến vị trí bên trong vùng chứa nơi chứa mã của chúng tôi

chạy:

docker-compose run --rm java java HelloWorld 
  • Lưu ý: lần đầu tiên bạn chạy nó, nó sẽ tìm nạp hình ảnh, v.v ... Điều này sẽ mất một lúc - nó chỉ xảy ra lần đầu tiên
  • docker-compose run - chạy một lệnh từ bên trong container
  • -rm yêu cầu docker gỡ bỏ container khi lệnh chạy xong
  • java là tên của dịch vụ / vùng chứa (từ tệp soạn thảo docker của chúng tôi) mà lệnh này sẽ chạy
  • phần còn lại của dòng là lệnh chạy bên trong container.

Đây là một cách tuyệt vời để xử lý việc chạy các phiên bản Java khác nhau cho các ứng dụng khác nhau mà không tạo ra sự lộn xộn hoàn toàn cho thiết lập cục bộ của bạn :).

Đây là một ví dụ phức tạp hơn một chút có Maven và một ứng dụng Spring đơn giản

Tuyên bố từ chối trách nhiệm:


2
Ví dụ tốt khi sử dụng Docker, không chắc chắn lý do tại sao bạn có một downvote trước đó.
Andrew

28
Tôi tưởng tượng downvote vì điều này không trả lời câu hỏi chạy Java trên OS X / MacOS. Trả lời "Làm thế nào để tôi làm điều này trên nền tảng X" với "Chỉ cần sử dụng VM / shim để làm điều đó trên nền tảng Y" không hiệu quả.
whitfin

đặc biệt là để phát triển java bản địa (ví dụ: sử dụng SWIG, JNI và LIBRARY_PATH)
Mizux

56

Giả định: Máy Mac và bạn đã cài đặt homebrew.

Cài đặt thùng (với Homebrew 0.9.5 trở lên, thùng được bao gồm vì vậy bỏ qua bước này):

$ brew tap caskroom/cask
$ brew tap caskroom/versions

Để cài đặt java mới nhất:

$ brew cask install java

Để cài đặt java 8:

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Nếu bạn muốn cài đặt / quản lý nhiều phiên bản thì bạn có thể sử dụng 'jenv':

Cài đặt và cấu hình jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

Thêm java đã cài đặt vào jenv:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

Để xem tất cả các java đã cài đặt:

$ jenv versions

Lệnh trên sẽ đưa ra danh sách java đã cài đặt:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

Định cấu hình phiên bản java mà bạn muốn sử dụng:

$ jenv global oracle64-1.6.0.39

Để đặt JAVA_HOME:

$ jenv enable-plugin export

2
Giải pháp tốt nhất! Cảm ơn bạn!
viktorianer

1
cảm ơn! Chỉ cần những gì tôi đang tìm kiếm.
csomakk

Cảm ơn bạn. Bắt đầu với giải pháp ngắn và chính xác và tiếp tục với một công cụ hữu ích khác: 'jenv' rất tiện để có xung quanh và bị thiếu trong hầu hết các câu trả lời khác. Giúp với đóng gói Scala (2.12 / 2.13) mã trong năm 2020.
emllnd

Hoạt động như một bùa mê, ủ thùng cài đặt áp dụng áp dụng / openjdk / accepttopenjdk8
jeadonara

25

Tôi đang gặp vấn đề tương tự, vì tôi cần cài đặt JDK8 để chạy Trình quản lý SDK Android (vì có vẻ như nó không hoạt động tốt với JDK9). Tuy nhiên, tôi cho bạn biết cách tôi giải quyết tất cả các vấn đề trên máy Mac (Sierra).

Đầu tiên, bạn cần pha với thùng và jenv .

  1. Bạn có thể tìm thấy một hướng dẫn hữu ích ở đây, Hướng dẫn cài đặt Homebrew Cask . Nhớ nhấn 'thùng / phiên bản' đang chạy trong thiết bị đầu cuối: brew tap caskroom/versions
  2. Sau đó, cài đặt jenv với: brew install jenv
  3. Cài đặt bất kỳ phiên bản nào bạn muốn với thùng brew cask install java8(hoặc java7hoặc javanếu bạn muốn cài đặt phiên bản mới nhất, jdk9)
  4. Bước cuối cùng là định cấu hình phiên bản nào sẽ chạy (và để jenv quản lý JAVA_HOME của bạn) jenv versionsđể liệt kê tất cả các phiên bản được cài đặt trên máy của bạn và sau đó kích hoạt phiên bản bạn muốnjenv global [JDK_NAME_OF_LIST]

Bạn có thể tìm thấy các thông tin hữu ích khác ở đây trên Github Gist brew-java-and-jenv.md , trên blog này Cài đặt nhiều JDK trên máy Mac và trên trang web Jenv


jenv khá dễ dàng và siêu hữu ích. Tôi có nhiều dự án cần java 8 và 11
Nikhil Sahu


18

Nếu bạn có một số phiên bản Java trên máy của mình và bạn muốn chọn nó một cách linh hoạt khi chạy, tức là trong trường hợp của tôi, tôi có hai phiên bản:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Bạn có thể thay đổi chúng bằng cách sửa đổi /etc/profilenội dung. Chỉ cần thêm (hoặc sửa đổi) hai dòng sau vào cuối tệp:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Trong trường hợp của tôi, nó sẽ giống như sau nếu tôi muốn sử dụng:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Sau khi lưu tệp, vui lòng chạy source /etc/profile và nó sẽ hoạt động. Đây là kết quả khi tôi sử dụng tùy chọn thứ nhất và thứ hai phù hợp:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Quá trình này tương tự nếu thư mục java của bạn được đặt ở các vị trí khác nhau.


Tại sao không tạo bí danh cho phiên bản khác nhau, như thế alias java8=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/javanào?
cglacet

14

Dường như chưa có ai nhắc đến người đàn ông SDK ( https://sdkman.io/ ).

Người đàn ông SKD cho phép cài đặt nhiều phiên bản Java trên Mac và dễ dàng chuyển đổi giữa các phiên bản này. Thêm thông tin có sẵn tại https://sdkman.io/usage .

Ví dụ:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```


13

Tôi có các ứng dụng sử dụng cả Java 7 và 8 và phải quay đi quay lại mọi lúc.

Tôi sử dụng kịch bản này được viết bởi Johan:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

Bây giờ bạn có thể thiết lập nó khi khởi động hoặc gọi tập lệnh sau đó.
Cài đặt JDK cho Mac.

Java 7

http://www.oracle.com/technetwork/java/javase/doads/jdk7-doads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/doads/jdk8-doads-2133151.html


Cập nhật khuyến nghị !! :

Sử dụng jenv https://www.jenv.be/ và homebrew.

Sau đó, nó chỉ jenv global oracle6401.6.0.39và thiết lập của nó.


1
+1: Tôi sử dụng tập lệnh này và tôi đồng ý, nó khá hữu ích cho các nhà phát triển có nhiều dự án yêu cầu các phiên bản Java khác nhau.
barclay

8
Thực sự không cần thiết phải đặt bất kỳ tập lệnh nào miễn là bạn chỉ cần sử dụng một phiên bản cụ thể trên toàn hệ thống. Về cơ bản, tất cả những gì bạn cần làm là thêm vào ~/.bashrchoặc ~/.bash_profile: export JAVA_HOME = "/ usr / libexec / java_home -v 1.8" và cũng thêm bạn $JAVA_HOME/binvào $PATHnếu trình cài đặt java chưa làm được. (LƯU Ý: thay thế dấu ngoặc kép bằng backticks cho / usr / libexec / java_home, không thể nhập backticks bằng chữ trong các bình luận ..)
ccpizza

nếu bạn muốn cài đặt java 7 (cùng với java 8) thông qua homebrew, lệnh được brew tap caskroom/versionstheo sau brew cask install java7.
icfantv

2
jenv là một công cụ rất thuận tiện để quản lý nhiều phiên bản Java, trên toàn cầu hoặc cục bộ trên mỗi thư mục.
Christian Long

12

Sử dụng Trình cài đặt, Luke

Các câu trả lời khác cho thấy trình quản lý gói Homebrew có vẻ hơi cực đối với tôi. Tôi chắc chắn Homebrew có một số cách sử dụng tốt. Nhưng để đơn giản chạy Java, cài đặt Homebrew là một bước bổ sung không cần thiết. Nếu mục tiêu của bạn chỉ đơn giản là chạy Java, chỉ cần tải xuống trình cài đặt Mac từ một nguồn đáng tin cậy.

Bạn có nhiều nguồn để có được một ứng dụng cài đặt dễ sử dụng để đưa Java vào máy Mac của bạn. Chạy trình cài đặt trên máy Mac của bạn giống như bạn làm với nhiều ứng dụng khác.

Dưới đây là sơ đồ sơ đồ để tìm nguồn Java 11, một số trong đó cũng cung cấp Java 8.

Lưu đồ hướng dẫn bạn trong việc chọn nhà cung cấp để triển khai Java 11

Tải xuống trình cài đặt từ một nhà cung cấp như AdoptOpenJDK.net.

Trang tải xuống tại AdoptOpenJDK.net

Chạy trình cài đặt.

ảnh chụp màn hình của trình cài đặt đang chạy

JavaVirtualMachines thư mục đã đúng

Tại sao trình cài đặt của Oracle không đặt nó ở nơi nó thực sự đi? Và làm thế nào tôi có thể làm việc xung quanh vấn đề này?

Không thành vấn đề.

Thư mục /Library/Java/JavaVirtualMachines/là ngôi nhà mới cho các JVM trên macOS .

ảnh chụp màn hình của thư mục "/ Library / Java / JavaVirtualMachines /" trong Finder

Để cài đặt JVM, hãy sử dụng trình cài đặt, được thảo luận bên dưới.

Để gỡ cài đặt, chỉ cần sử dụng Finder để xóa JVM khỏi thư mục đó. Bạn sẽ được nhắc nhập mật khẩu quản trị hệ thống để hoàn tất xóa.


Java 9 & 10 & 11

Trở lại năm 2010, của Apple tham gia các OpenJDK dự án , cùng với Oracle , IBM , Red Hat , Azul , và các nhà cung cấp Java khác. Mỗi thành viên đóng góp mã nguồn, thử nghiệm và phản hồi cho cơ sở mã OpenJDK hợp nhất.

Apple đã đóng góp hầu hết mã dành riêng cho Mac cho JVM của mình. Bây giờ Apple không còn phát hành JVM dành riêng cho Mac của mình. Bây giờ bạn có lựa chọn nhà cung cấp JVM, với các bản dựng đến từ cơ sở mã OpenJDK.

Bạn sẽ tìm thấy mã nguồn tại: http://openjdk.java.net

Bản phát hành mới

Xin lưu ý rằng trong năm 2017, Oracle, JCP và OpenJDK đã áp dụng một kế hoạch đào tạo phát hành nhanh chóng mới cho các phiên bản Java được lên lịch thường xuyên để được phân phối theo cách có thể dự đoán được.

Đọc bài đăng trên blog Azul Systems 2018-07 này để biết thêm chi tiết, Loại bỏ sự nhầm lẫn cập nhật Java của Simon Ritter .

Cũng đọc Java vẫn miễn phí .

Nhà cung cấp

Để biết danh sách khá đầy đủ các triển khai JVM trong quá khứ và hiện tại, hãy xem trang này tại Wikipedia .

Dưới đây là một cuộc thảo luận của một vài nhà cung cấp. Xem sơ đồ trên để biết thêm nhà cung cấp

Oracle JDK

Oracle cung cấp trình cài đặt JDK và JRE cho nhiều nền tảng bao gồm macOS.

Trong nhiều năm kể từ khi mua lại Sun, Oracle đã kết hợp các phần tốt nhất của hai công cụ JVM, HotSpotJRocket và sáp nhập chúng vào dự án OpenJDK được sử dụng làm cơ sở cho việc triển khai Java mang thương hiệu của riêng họ.

Kế hoạch kinh doanh mới của họ, tính đến năm 2018, là cung cấp một triển khai Java mang nhãn hiệu Oracle với một khoản phí trong sản xuất và không mất phí sử dụng để phát triển / thử nghiệm / demo. Hỗ trợ cho các bản phát hành trước đó yêu cầu một chương trình hỗ trợ trả phí. Họ đã tuyên bố ý định phát hành thương hiệu của họ ở mức ngang bằng với tính năng phát hành OpenJDK. Họ thậm chí đã quyên góp các tiện ích thương mại như Máy ghi âm cho dự án OpenJDK.

Oracle cũng phát hành bản dựng OpenJDK mà không cần hỗ trợ: http://jdk.java.net/

Oracle đã sản xuất một JDK có mục đích đặc biệt, GraalVM .

Zulu & Zing của Azul

Azul Systems cung cấp nhiều sản phẩm JVM.

  • Dòng của họ Zuluđược dựa trực tiếp trên OpenJDK và được cung cấp miễn phí với các gói hỗ trợ trả phí tùy chọn.
  • Dòng của họ Zingcung cấp các sản phẩm JVM thương mại được tăng cường với các triển khai kỹ thuật thay thế như bộ thu gom rác chuyên dụng .

Cả hai dòng của họ đều cung cấp trình cài đặt cho macOS.

Tôi hiện đang sử dụng Zulu cho Java 10.0.1 trên macOS High Sierra với IntelliJ 2018.2 và Vaadin 8 . Tôi tải xuống từ trang này . Nhân tiện, tôi không tìm thấy bất kỳ mục nào liên quan đến Java được cài đặt trên ứng dụng Apple System Preferences .

AdoptOpenJDK.net

AdoptOpenJDK là một nỗ lực do cộng đồng lãnh đạo để xây dựng các nhị phân của nguồn OpenJDK. Họ dự định cung cấp thông tin cập nhật theo thời gian, do các thành viên cộng đồng quyên góp.

  • Sự lựa chọn của bạn về HotSpot hoặcđộng cơ OpenJ9 .
  • Bản dựng có sẵn cho macOS, Linux và Windows.

OpenJ9 bởi Eclipse

Các OpenJ9 dự án là một khác thực hiện của động cơ JVM, một thay thế cho HotSpot .

Hiện được tài trợ tại Quỹ Eclipse, với công nghệ và sự hỗ trợ do IBM tài trợ vào năm 2017.

Đối với các tệp nhị phân dựng sẵn, họ giới thiệu bạn đến dự án AdoptOpenJDK được đề cập ở trên.

Động lực trong việc chọn nhà cung cấp cho Java.png


Cài đặt thế nào

Các trình cài đặt được cung cấp bởi Oracle hoặc Azul đều rất đơn giản để vận hành. Chỉ cần chạy ứng dụng cài đặt trên máy Mac của bạn. Một cửa sổ xuất hiện để chỉ ra tiến trình cài đặt.

Khi hoàn tất, hãy xác minh cài đặt JVM của bạn bằng cách:

  • Tham quan /Library/Java/JavaVirtualMachines/ thư mục để xem một mục cho JVM mới.
  • Chạy một bảng điều khiển như Terminal.app và gõ java -versionđể xem nhãn hiệu và số phiên bản của JVM của bạn.

Sau khi xác minh thành công, hãy gỡ bỏ hình ảnh .dmg trong Finder. Sau đó, rác tập tin .dmg bạn đã tải xuống.


11

Chạy các lệnh này trên mac High Sierra

brew update
brew tap caskroom/versions
brew cask install java8

và kiểm tra bằng lệnh

java -version

Lấy cái này:Error: Download failed on Cask 'java8' with message: Download failed: https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-macosx-x64.dmg
Siddhartha


7

Cách tốt nhất là sử dụng trình quản lý gói bia nhưng lệnh

 brew cask install java8

lỗi với:

Error: No available formula with the name "java8" 

Vì vậy, sử dụng

brew cask install caskroom/versions/java8

Làm cách nào tôi tìm thấy "caskroom / Phiên bản / java8": sử dụng lệnh brew search:

brew cask search java8

7

Nếu bạn đang sử dụng nó KHÔNG cho sử dụng cá nhân, bạn có thể muốn sử dụng OpenJDK thay vì để tránh bất kỳ vụ kiện tiềm năng nào từ Oracle.

brew cask install adoptopenjdk8

tìm / usr / local / Homebrew / Library / Taps / | grep -i jdk | xargs rm -v nếu bạn xảy ra, hãy lấy "Lỗi: Cask áp dụngoptopenjdk8 tồn tại trong nhiều vòi:" lỗi ...
Yordan Georgiev

5

Nếu bạn đang dùng Mac, thì Homebrew là cách để cài đặt công cụ.

Có vẻ như phiên bản 8 không còn là phiên bản mới nhất, vì vậy nó không có sẵn bằng cách sử dụng mặc định brew cask install java .

Thay vào đó tôi quản lý bằng cách làm như sau:

brew install homebrew/cask-versions/

Nếu thất bại, chỉ cần thử trực tiếp cái tiếp theo:

brew install homebrew/cask-versions/adoptopenjdk8

Kiểm tra với brew cask listhoặcjava -version


+1, hoạt động với tôi trên macOS 10.12.6 Sierra. (Hoặc ủ thùng cài đặt áp dụng áp dụng / áp dụng / openjdk / accepttopenjdk8)
McAllister Bowman

+1 Công cụ đầu tiên không thành công (Lỗi: Không có công thức khả dụng với tên "homebrew / cask-Phiên bản /"), nhưng công thức thứ hai dường như hoạt động. Cập nhật câu trả lời để tránh làm mọi người sợ hãi với lần đầu tiên.
Dennis Jaheruddin

4

Đơn giản nhất là tải xuống tệp dmg từ trang web sau và cài đặt bằng cách nhấp đúp

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tìm kiếm các JVM có sẵn từ thư mục nhà

ls -al /Library/Java/JavaVirtualMachines

và cập nhật .bash_profile với phiên bản phù hợp

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

và cuối cùng

source ~/.bash_profile

3

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.

1. 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

2. Thêm vòi tap, 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

3. 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.

4. 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     

5. 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

6. Cài đặt một phiên bản cụ thể của JDK, chẳng hạn như java11, accepttopenjdk8 hoặc chỉ java hoặc accepttopenjdk cho hiện tại. Ví dụ:

**brew cask install java**

**brew cask install java8**

**brew cask install java11**

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

Có lẽ tôi đã làm gì đó sai, nhưng khi thử làm java8 tôi đã gặp một lỗi: Lỗi: Cask 'java8' không khả dụng: Không tồn tại Cask với tên này.
Dennis Jaheruddin

2

Bạn có thể thử điều này:

$ brew search jdk
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home

 


2

Cách dễ nhất

1) brew cask install java

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Cask là một phần mở rộng của Homebrew nhằm quản lý các nhị phân Mac lớn và các ứng dụng đồ họa, nhưng sử dụng giao diện Homebrew. Cũng xem câu trả lời này trên Apple StackExchange.


nó luôn cài đặt phiên bản mới nhất
Ray Garner

1

Thử :

ủ thùng cài đặt java 8 ,, nó sẽ cho kết quả dưới đây

8tracksradiohelper áp dụngtoptopjjkk amitv87-pip Corretto8 icon8 vmware-fusion8 x48 zulu8

Tiếp theo nhập: ủ thùng cài đặt áp dụng áp dụng áp dụng ---- java 8 sẽ được cài đặt trong Mac.


0

Tôi sẽ đề nghị sử dụng người đàn ông SDK khá dễ dàng để thay đổi Phiên bản (tạm thời và vĩnh viễn) và nó cũng cung cấp các SDK khác. Tôi đã sử dụng người đàn ông SDK hơn một năm nay.

https://sdkman.io/


ty cho tiền boa để sdkman.io! Tôi thấy điều này do chủ đề quá dài nhưng có thể đọc kết thúc. Fyi, mẹo này cũng nằm trên stackoverflow.com/a/54101167/242110
AnneTheAgile


-4

Dưới đây các bước làm việc cho tôi.

1) Gỡ cài đặt tất cả jdks

Trong cửa sổ Terminal Sao chép và Dán lệnh bên dưới:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2) Cài đặt APPLE jdk.

https://support.apple.com/kb/DL1572?locale=en_US

3) Tải xuống JDK mới nhất từ ​​Oracle và cài đặt nó, với tôi đó là JDK 1.82

http://www.oracle.com/technetwork/java/javase/doads/jre8-doads-2133155.html

Đó là tất cả nó sẽ làm việc như một nét duyên dáng.

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.