Làm cách nào để cài đặt JDK cụ thể trên Mac OS X?


197

Tôi muốn cài đặt một JDK cụ thể (ví dụ mới nhất). Để làm điều này, tôi đã đi đến trang chủ tải xuống JDK: http://java.sun.com/javase/doads/index.jsp . Tôi đã tìm phiên bản Mac, nhưng tôi hơi ngạc nhiên khi chỉ thấy các phiên bản có thể tải xuống cho Linux, Windows và Solaris ...

Đây là thông báo cho Mac:

"Máy tính Apple cung cấp phiên bản Java của riêng họ. Sử dụng tính năng Cập nhật phần mềm (có sẵn trên menu Apple) để kiểm tra xem bạn có phiên bản Java cập nhật nhất cho máy Mac của mình không."

OK NHƯNG ... khi tôi cập nhật Java với Mac, tôi có JRE chứ không phải JDK ...

Tôi không hiểu tại sao phiên bản JDK không tồn tại mà có thể dễ dàng tải xuống / có thể cài đặt (như jar để giải nén?) Cho Mac ...


70
Câu hỏi nổi tiếng ... bạn nên chấp nhận một câu trả lời. ;)
gary

Fink cung cấp một giải pháp cho việc này.
Daniel

10
Lưu ý rằng Java 7 hiện được cung cấp bởi Oracle - hầu hết các câu trả lời và câu hỏi đề cập đến một trạng thái trước đó
mmmmmm

Câu trả lời:


44

Trong một nhận xét dưới câu trả lời của @ Thilo, @mobibob đã hỏi cách đặt JAVA_HOME trong .bash_profile của bạn trên máy Mac. Câu trả lời:

export JAVA_HOME=`/usr/libexec/java_home` 

Điều này sẽ tự động gán cho JAVA_HOME vị trí của JDK đầu tiên được liệt kê trong tab "Chung" của tiện ích "Tùy chọn Java".

Xem Hỏi & Đáp về Kỹ thuật của Apple 1170: https://developer.apple.com/l Library / content / qa / qa1170 / _index.html

BIÊN TẬP:

Nếu bạn thích dấu ngoặc đơn để backticks thay thế lệnh, thì điều này cũng hoạt động:

export JAVA_HOME=$(/usr/libexec/java_home)

20

Như thông báo nói, bạn phải đến Apple, không phải Sun, cho Java trên Mac. Theo tôi biết, Apple JDK 6 được cài đặt theo mặc định trên Mac OS X 10.6 (Snow Leopard). Có thể bạn cần cài đặt các công cụ dành cho nhà phát triển từ DVD cài đặt Mac OS X của mình (các công cụ dev là cài đặt tùy chọn từ DVD hệ điều hành).

Xem: http://developer.apple.com/java/

LƯU Ý Câu trả lời này từ ngày 16 tháng 10 năm 2009 hiện đã lỗi thời; bây giờ bạn có thể lấy JDK cho Mac OS X từ trang tải xuống JDK thông thường trên trang web của Oracle.



10

Tôi đã mua MacBook Pro ngày hôm qua ( Mac OS X v10.8 (Mountain Lion)) và không có JDK nào được cài đặt theo mặc định ...

Cũng như javac, tôi cũng thấy nó không có các gói như SVN được cài đặt. Hóa ra bạn có thể lấy mọi thứ từ trang nhà phát triển của Apple (bạn sẽ cần phải đăng ký với AppleID của mình). SVN là một phần của gói "Công cụ dòng lệnh".

Nhập mô tả hình ảnh ở đây

Đây là những gì xảy ra trên MacBook mới:

Nhập mô tả hình ảnh ở đây

Nhập mô tả hình ảnh ở đây

Hy vọng rằng điều này sẽ giúp những người mới khác như tôi;)


5
+1. Tình hình đã thay đổi một chút với Mountain Lion. Cũng lưu ý rằng mặc dù Apple cung cấp cài đặt Java tùy chọn, nhưng nó chỉ là phiên bản Java cũ hơn 6. Các phiên bản Java hiện tại cho OS X hiện do chính Oracle phân phối.
Thilo


4

Giải thích là JDK là một chút cụ thể và không chứa thư viện tools.jar . Để phát triển, tôi cần thư viện này và JDK của Mac không cung cấp nó:

(Cf. http://developer.apple.com/mac/lvern/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar không tồn tại. Các lớp thường nằm ở đây thay vào đó được bao gồm trong class.jar. Các tập lệnh dựa trên sự tồn tại của tools.jar cần phải được viết lại cho phù hợp.

Nó thật tệ!


1
Ahhhhhhh !!! Như bạn đã khám phá, tools.jarđã được đưa vào thời gian chạy cho Mac OS X. Vì vậy, tìm kiếm tools.jarkhông phải là cách tiếp cận phù hợp trên Mac để biết đó là JDK hay JRE :)
Pascal Thivent

Cảm ơn phản hồi của bạn, bạn đã đúng. Nhu cầu của tôi là có được các công cụ lib cho một dự án cụ thể và đối với tôi đó là một cách tiếp cận để nhận ra một jdk;)
ajeanson

4

Cách dễ nhất là sử dụng Homebrew . Cài đặt Homebrew và sau đó:

brew tap caskroom/versions
brew cask install java7

Bạn có thể liệt kê tất cả các phiên bản có sẵn bằng lệnh sau: brew cask search java


3

Biên dịch với -ource 1.5 -target 1.5 (trong môi trường JDK 6) sẽ chỉ tôn trọng các yếu tố ngôn ngữ ở mức 1.5 và trước đó. Tuyệt quá. Nhưng dù sao cũng không có thay đổi ngôn ngữ nào trong 6. Vấn đề với cách tiếp cận này (trên Mac với 1.6) là việc sử dụng các lớp đến SAU 1.5 vẫn sẽ biên dịch vì chúng tồn tại trong rt.jar. Vì vậy, người ta có thể chạy trong 1,5 env và nhận được một lớp không tìm thấy ngoại lệ mà không có cảnh báo trước khi biên dịch. Tôi đã tìm thấy điều này một cách khó khăn với javax.swing.event.RowSorterEvent / Listener. Cả hai đều nhập "Kể từ 1.6" nhưng không bị bắt với -ource 1.5



3

Kể từ Mac OS X v10.6 (Snow Leopard), bạn có thể chạy Java 6 ở chế độ 32 bit trên máy Mac được trang bị bộ xử lý Intel 32 bit hoặc 64 bit .

Nếu bạn không thể nâng cấp lên Snow Leopard, Soy Latte là phiên bản được biên dịch sẵn của Java 6 cho Intel 32-bit.



1

Tôi nghĩ rằng câu hỏi Stack Overflow khác này có thể giúp:

Cách tải JDK 1.5 trên Mac OS X

Về cơ bản, nó nói rằng nếu bạn cần biên dịch hoặc thực thi một ứng dụng Java với phiên bản cũ hơn của JDK (ví dụ 1.4 hoặc 1.5), bạn có thể thực hiện nó bằng cách sử dụng 1.6 vì nó tương thích ngược. Để làm điều đó, bạn sẽ cần thêm tham số -source 1.5và / hoặc -target 1.5trong các tùy chọn javac hoặc trong IDE của bạn.


1

JDK là Bộ công cụ phát triển Java (được sử dụng để phát triển phần mềm Java).

JRE là Môi trường chạy thi hành Java (được sử dụng để chạy bất kỳ tệp .jar 'phần mềm Java').

JDK chứa JRE bên trong nó.

Trên Windows khi bạn cập nhật Java, nó sẽ tự động cập nhật JRE.

Trên Mac, bạn không có JRE riêng biệt, nhưng bên trong JDK, vì vậy khi bạn cập nhật Java, nó sẽ cập nhật JRE bên trong JDK của bạn; nó không cài đặt JDK cho bạn. Bạn cần phải lấy nó từ một nơi khác.


1
Tôi nghĩ bạn có nghĩa là JDK thay vì IDK. Tôi đã thử chỉnh sửa nhưng Stack Overflow cho biết các chỉnh sửa cần dài hơn 6 ký tự. Chỉ cần đề cập đến nó để tránh nhầm lẫn.
giun web

1

Kiểm tra sdkman công cụ tuyệt vời này để quản lý jdk của bạn và các công cụ liên quan đến jdk khác một cách dễ dàng!

ví dụ

$sdk list java
$sdk install java <VERSION>

1

Vì hầu hết các câu trả lời đã hết hạn, đây là những gì hoạt động vào cuối năm 2018 với giả định rằng

  1. Bạn muốn cài đặt phiên bản GPL của OpenJDK. [0]
  2. Bạn không muốn cài đặt Homebrew

Trong trường hợp đó, lấy phiên bản mong muốn từ một trong nhiều phiên bản OpenJDK có thể sử dụng tự do, ví dụ:

Một số trong số này bao gồm các trình cài đặt, nhưng nếu không, bạn có thể làm như sau. Giả sử ở đây phiên bản 11.0.1 cho Mac. Trong vỏ yêu thích của bạn, chạy:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] Lưu ý rằng JDK mang nhãn hiệu Oracle có các hạn chế cấp phép đáng kể cho phép bạn sử dụng về cơ bản chỉ để thử nghiệm, tức là không dành cho sản xuất. Nếu bạn không có thỏa thuận hỗ trợ với Oracle, thì việc sử dụng JDK của họ có vẻ rủi ro, đặc biệt là vì sự khác biệt so với OpenJDK là tối thiểu .

Chỉnh sửa: thêm nhiều lựa chọn


1
Tôi khuyên bạn nên chỉ ra việc tải xuống từ AdoptOpenJDK.net , và sau đó làm theo hướng dẫn của bạn, từ đó tránh các vấn đề pháp lý & hỗ trợ trong các bản phát hành của Oracle.
Basil Bourque

0

Theo quy định, bạn không thể cài đặt các phiên bản Java khác trên máy Mac so với các phiên bản do Apple cung cấp thông qua Cập nhật phần mềm. Nếu bạn cần Java 6, bạn phải có máy tính Intel 64 bit. Bạn phải luôn cài đặt Java 5 và 1.4 và có lẽ 1.3 nếu bạn có ít nhất OS X 10.4.

Nếu bạn có RẤT nhiều mỡ khuỷu tay và sẵn sàng làm việc với phần mềm beta, bạn có thể cài đặt OpenJDK trong OS X, nhưng tôi không nghĩ bạn muốn đến đó.


Tôi biết, đó là lý do tại sao tôi thêm bình luận đó. Có lẽ nên viết bình luận dài hơn một chút để đi với liên kết :-)
Neeme Praks
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.