Làm cách nào để sử dụng JDK 7 trên Mac OSX?


107

Tôi muốn sử dụng API WatchService như được đề cập trong liên kết này: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Sau khi đọc xung quanh, tôi phát hiện ra rằng WatchService là một phần của lớp NIO được lên lịch cho JDK 7. Vì vậy, nó ở dạng beta. Tốt rồi.

http://jdk7.java.net/download.html có JDK mà tôi đã tải xuống và giải nén. Tôi có một loạt các thư mục. Tôi không biết phải làm gì với chúng.

Sau đó, tôi đọc thêm một số thứ và thấy rằng một số nhóm người tốt bụng đã tạo JDK 7 dưới dạng tệp nhị phân để những người như tôi có thể cài đặt nó một cách dễ dàng. Nó được gọi là Open JDK: http://code.google.com/p/openjdk-osx-build/

Vì vậy, tôi đã tải xuống tệp .dmg và cài đặt nó. Sau đó, tôi mở "Sở thích Java" và thấy rằng OpenJDK7 có sẵn.

Vì vậy, bây giờ tôi cảm thấy rằng tôi có thể bắt đầu dùng thử API WatchService. Từ hướng dẫn trong liên kết đầu tiên, tác giả đã đưa ra một tệp .java để kiểm tra nó trước và đảm bảo rằng nó đang chạy. Đây là liên kết đến tệp: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Vì vậy, tôi khởi động Eclipse (thực sự là tôi sử dụng STS) và tạo một dự án Java mới và chọn JaveSE-1.7 trong phần "sử dụng môi trường thực thi JRE:". Trong thư mục src, tôi sao chép đã dán tệp WatchDir.java.

Và tôi vẫn thấy hàng tấn đường đỏ nguệch ngoạc. Tất cả "import.java.nio. *" Đều có màu đỏ và tôi không thể chạy nó như một ứng dụng Java.

Tôi cần phải làm gì?


Bạn có thể chạy và biên dịch nó trên bảng điều khiển không?
dmeister

Ý bạn là: $ javac WatchDir.java và sau đó là $ Java WatchDir? Tôi sẽ cố gắng làm điều đó. Cảm ơn! Mặc dù tôi rất muốn có nó trong IDE Eclipse.
okysabeni

1
Kể từ hôm nay, có một bản phát hành chính thức của Oracle - Java SE 7u4
mmmmmm

Đảm bảo rằng bạn đang sử dụng Eclipse 64bit. Không gặp may khi chạy 32bit một trên 1.7 jvm với bất kỳ tùy chọn nào.
tuxSlayer

Cập nhật: Java 7 hiện đã hết hạn sử dụng . Để chuyển sang phiên bản hỗ trợ dài hạn (LTS) của Java, hãy xem: Cách cài đặt Java 8 trên Mac và Tải xuống Java 11 cho macOS? .
Basil Bourque

Câu trả lời:


61

Oracle đã phát hành JDK 7 cho OS X .


Tôi sẽ cập nhật câu trả lời khi có thông tin mới nhất. Vui lòng cho tôi biết nếu đây không phải là câu trả lời đúng. Cảm ơn.
okysabeni

@Yko - xem BasilBourque's để biết thông tin đầy đủ nhất (hoặc của tôi cho Oracle JDK7 phiên bản 4 đầu tiên)
mmmmmm

12
Lưu ý rằng để làm cho các ứng dụng sử dụng Java 1.7 của Oracle thay vì Java 1.6 của Apple, tôi phải chạy /Library/Java/JavaVirtualMachines/1.7.0.jdkvà kéo "Java SE 7" lên đầu danh sách trên tab "Chung". Điều này cũng sẽ javacchỉ đến phiên bản Java 1.7 khi chạy thiết bị đầu cuối.
sschuberth

2
Oracle's JDK7 không hoạt động trên Snow Leopard. Nó nói rằng nó chỉ được hỗ trợ Lion.
Sanghyun Lee

@Sangdol - Có, việc triển khai Java của Oracle chỉ chạy trên Lion trở lên. Như đã lưu ý trong câu trả lời của tôi cho câu hỏi này.
Basil Bourque

88

Đây là cách tôi có 1.7 để làm việc với Eclipse. Tôi hy vọng nó sẽ giúp.

  1. Tôi đã tải xuống JDK phổ quát OpenJDK 1.7 (32/64 bit) mới nhất từ ​​nhánh Mac OS / X từ http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. đã sao chép jdk vào / Library / Java / JavaVirtualMachines / bên cạnh phiên bản 1.6.0 mặc định
  3. Trong Eclipse> Tùy chọn> Java> JRE đã cài đặt, bạn thêm một JRE mới, kiểu MacOS X VM và đặt nhà là /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home và đặt tên Java SE 7 (OpenJDK)
  4. Nhấp vào Kết thúc
  5. Đặt JRE đã thêm làm mặc định

chắc là vậy :)


cảm ơn elcipse của tôi hoàn toàn bị treo .. vì vậy tôi đã cố gắng sử dụng sdk 1.7 hoạt động hoàn hảo! : =)
cV2

1
Dự án đó (openjdk-osx-build) đã ngừng hoạt động và không còn cung cấp bất kỳ bản tải xuống nào nữa.
aroth

bước 2 có thể chỉ là: chạy downladed jdk-7u40-macosx-x64.dmg và nó sẽ tự động thêm tệp vào đường dẫn
Michal

Khi thêm một JRE đã cài đặt vào Eclipse, Eclipse cũng có thể "tìm kiếm" các JRE đã cài đặt. Đó là cách tôi tìm thấy bản cài đặt 1.7 JDK hiện có của mình.
jvriesem

Lưu ý rằng oracle jdk 1.7 cài đặt sẽ đưa VM vào / Library / Java / JavaVirtualMachines / cho bạn (tháng 3 năm 2014)
Chris Thorne

55

Java 9, 10, 11

Nhiều năm trước, Apple đã tham gia dự án OpenJDK , chuyển mã JVM dành riêng cho macOS độc quyền trước đây của họ thành mã nguồn mở miễn phí. Apple đã ngừng phân phối JVM / JDK mang thương hiệu của riêng họ, dựa vào các bản phát hành mang thương hiệu của Oracle để đưa vào một phiên bản cho macOS.

Oracle gần đây đã công bố ý định đưa bản phát hành JVM mang nhãn hiệu Oracle của họ có tính năng tương đương với dự án OpenJDK, với cơ sở mã hầu như giống nhau. Công ty thậm chí còn tặng các công cụ thương mại trước đây của họ, Máy ghi âm & Kiểm soát Nhiệm vụ , cho dự án OpenJDK. Đây là một phần của quá trình chuyển sang kế hoạch “phát hành nhanh” mới để tạo phiên bản Java và OpenJDK theo lịch dự đoán. Đáng chú ý, thời hạn cập nhật công khai miễn phí hiện đã được rút ngắn. Xem thông báo 2017-09 nàybài đăng này của Mark Reinhold .

Kết quả của tất cả những điều này, người dùng macOS của Java có thể lựa chọn nhà cung cấp để triển khai Java. Tại thời điểm này, ít nhất ba nguồn dựa trên OpenJDK cho macOS:

  • Oracle phát hành JDK và JRE, với hỗ trợ trả phí tùy chọn.
  • Hệ thống Azul phát hành:
    • Dòng JVM miễn phí của Zulu với hỗ trợ trả phí tùy chọn.
    • Dòng JVM thương mại của Zing với các tính năng đặc biệt như bộ thu gom rác thay thế.
  • Mã nguồn OpenJDK , tự biên dịch và cài đặt (có lẽ không thực tế với hầu hết chúng ta).

Trong khi đó, IBM đã tặng mã JVM cho Eclipse Foundation, hiện được đặt trong dự án OpenJ9 . Tôi tự hỏi liệu họ có thể hỗ trợ một bản phát hành macOS hay không, mặc dù vẫn còn quá sớm để nói.

Cá nhân tôi hiện đang sử dụng thành công phiên bản Zulu của Java 10.0.1 từ Azul trên macOS High Sierra với IntelliJ 2018.2 để tạo ra các ứng dụng web được hỗ trợ bởi Java với Vaadin .

Cài đặt / Loại bỏ

Cả Oracle và Azul đều cung cấp các trình cài đặt hoàn toàn dễ sử dụng để cài đặt JVM / JDK trên máy Mac của bạn. Xác minh cài đặt của bạn bằng cách sử dụng Terminal.app (hoặc tương đương) để nhập và chạy:

java -version

Bạn sẽ tìm thấy các bản cài đặt Java trong thư mục này ở cấp cơ sở của ổ đĩa (không phải trong thư mục chính của bạn):

/ Library / Java / JavaVirtualMachines

Mỗi phiên bản từ mỗi nhà cung cấp được tìm thấy ở đó, trong một thư mục lồng nhau có nhãn. Bạn có thể xóa bất kỳ cài đặt nào đơn giản bằng cách xóa thư mục lồng nhau cho phiên bản đó và cung cấp mật khẩu hệ thống của bạn khi được nhắc.

Java 8

Bạn có thể tải xuống Bộ công cụ phát triển Java (JDK) cho Java 8 cho các phiên bản được hỗ trợ của Mac OS X:

  • Sư tử núi (10.8.3+)
  • Mavericks (10,9)
  • Yosemite (10.10)
  • El Capitan (10,11)

Mỗi phiên bản JVM bạn cài đặt có thể được tìm thấy tại đây:

/Library/Java/JavaVirtualMachines

Để biết thêm hướng dẫn và câu hỏi thường gặp, hãy xem Hướng dẫn Oracle này .

Java 7

Đối với mọi bản phát hành của Java 7 kể từ Bản cập nhật 4, một phiên bản Mac đã sẵn sàng cùng với các nền tảng khác. Chạy trên máy Mac có phần cứng 64 bit trên Lion (10.7.3+), Mountain Lion (10.8.3+) và Mavericks (10.9.x).

Oracle đã công bố bản phát hành chính thức của JDK cho Java SE 7 Cập nhật 4 trên Mac OS X (Lion), kể từ 2012-04-26. Không cần thêm các thủ thuật được thảo luận trên trang này.

Cài đặt đơn giản theo các hướng dẫn sau:

  1. Tải xuống từ nơi thông thường trên trang web Oracle.
  2. Gắn DMG.
  3. Chạy trình cài đặt.

Bản phát hành này có một số hạn chế, đáng chú ý nhất là thiếu hỗ trợ cho Java Web StartJava Plugin cho trình duyệt web. Sự hỗ trợ đó dự kiến ​​vào cuối năm nay.

Sau khi cài đặt, hãy đọc JDK cho Mac ReadMe. Quan trọng nhất, nếu bạn muốn Java 7 làm mặc định, hãy kéo nó lên đầu danh sách trong ứng dụng Java Preferences trong thư mục Tiện ích của bạn.

Mac OS X dễ dàng hỗ trợ nhiều JVM đồng thời. Mỗi cái hiện được tìm thấy ở đây:

/Library/Java/JavaVirtualMachines

Xin chúc mừng đội Apple & Oracle vì thành tích của họ. Người đam mê này sẽ hồi hộp khi thấy Mac OS X được liệt kê là " Cấu hình hệ thống được chứng nhận ".

Mẹo: Để khởi động Eclipse trên máy Mac chỉ được cài đặt Java 7, hãy mở tệp bí danh có tên là eclipse thay vì tệp có tên Eclipse.app .

Java 6

Apple tiếp tục cung cấp bản triển khai Java 6 cập nhật cho tất cả các phiên bản Mac OS X thông qua Mountain Lion.

Nếu bạn làm điều gì đó yêu cầu Java, chẳng hạn như nhập "java -version" trong Terminal.app, một hộp thoại xuất hiện đề nghị cài đặt Java cho bạn. Nếu bạn chấp nhận, quá trình cài đặt sẽ tự động diễn ra tương tự như "Cập nhật phần mềm" khác của Apple.

Bạn sẽ thấy Java được cài đặt ở vị trí này, khác với Java 7 & 8:

/System/Library/Java/JavaVirtualMachines

Java 6 đã hết thời hạn sử dụng với Oracle kể từ 2013-02 (trừ khi bạn có thỏa thuận hỗ trợ thương mại với Oracle). Vì vậy, bạn nên chuyển sang Java 7 hoặc 8.

Thử nghiệm phiên bản mới

Trong Terminal.app, nhập java -versionđể xác minh phiên bản nào là mặc định hiện tại.

Xóa các phiên bản cũ

Sau khi cài đặt phiên bản mới, bạn có thể truy cập thư mục được mô tả ở trên để xóa các phiên bản cũ. Di chuyển thư mục vào Thùng rác và cung cấp mật khẩu Hệ thống của bạn để hoàn tất việc di chuyển.


Nhân tiện, Apple cung cấp một danh sách gửi thư cho các vấn đề kỹ thuật của nhà phát triển liên quan đến Java trên OS X.


Cảm ơn, điều này làm việc tuyệt vời cho tôi. Cần phải thay đổi nó trong sở thích nữa.

@Tony: Có, việc thay đổi Tùy chọn của bạn được đề cập trong đoạn thứ 4.
Basil Bourque

Không hoạt động. Tôi chạy trình cài đặt và nó báo "Thành công", nhưng dường như không có gì thực sự được cài đặt. /System/Library/Java/JavaVirtualMachineschỉ chứa Java 6 JDK.
aroth

4
@aroth - (a) Nhìn vào /Library/Java/JavaVirtualMachines(không phải /System). (b) Bạn đã đọc tài liệu cài đặt của Oracle ReadMe, và thiết lập Preferencesnhư được mô tả trong câu trả lời của tôi ở trên?
Basil Bourque

1
Với Java 7 r21, tôi thấy /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Bảng điều khiển Java hiện được truy cập thông qua Tùy chọn hệ thống (OSX 10.8.3)
Sofi Software LLC

17

Một cách dễ dàng để cài đặt Java 7 trên máy Mac là sử dụng Homebrew , nhờ Homebrew Cask plugin (hiện đã được cài đặt theo mặc định).

Chạy lệnh này để cài đặt Java 7:

brew cask install caskroom/versions/java7

"Lỗi: Không thùng có sẵn cho caskroom / phiên bản / java7"
jrochkind

@jrochkind Có thể của bạn đã caskroom/versionslỗi thời? Nó chắc chắn ở đây: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew

@jrochkind Thử chạy brew tap caskroom/versionstrước khi chạy cài đặt lệnh
Andrew

@jrochkind Nếu cách đó không hiệu quả, hãy tham khảo tài liệu thùng hoặc gửi sự cố: github.com/caskroom/homebrew-cask
Andrew

13

Nhận thùng

brew tap caskroom/cask

Cài đặt java7:

brew tap caskroom/versions
brew cask install java7

(Tôi gặp khó khăn khi tìm liên kết tải xuống của java7 trên trang web oracle, vì họ chỉ "giới thiệu" java8)

CHỈNH SỬA tháng 1 năm 2018 (Theo chỉ dẫn của Ankur ):

Sử dụng zulu7 cask. Zulu là một bản dựng được chứng nhận của OpenJDK do Azul Systems sản xuất, nên đã tồn tại trong một thời gian dài (họ thậm chí còn cung cấp các bản dựng JDK6).

brew cask install caskroom/versions/zulu7

Câu trả lời được chấp nhận cho câu hỏi này đã lỗi thời. Đây dường như là cách tốt nhất để cài đặt Java 7 ngày nay.
Tim Dean

thùng này đã bị xóa (xem: github.com/caskroom/homebrew-versions/pull/3914 ). giải pháp thay thế được đề xuất là sử dụng zulu7.
Ankur

9

Tôi biết rằng một số người có thể muốn đập tôi vì mở lại bài đăng cũ, nhưng nếu bạn cảm thấy vậy, tôi chỉ hy vọng điều này có thể giúp ích cho ai đó đang cố gắng thiết lập JDK 7 trên Mac OS (sử dụng IntelliJ).

Những gì tôi đã làm để điều này hoạt động trên máy của tôi là:

  • đã làm theo hướng dẫn trên Oracle JDK7 Mac OS X Port để cài đặt chung
  • trong IntelliJ mở / tạo dự án mới để bạn có thể thêm SDK mới (Tệp> Cấu trúc dự án)
  • chọn Cài đặt nền tảng> SDK, nhấn dấu "+" (dấu cộng) để thêm SDK mới
  • chọn JSDK và điều hướng đến / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Đừng nhầm với / Users / YOUR_USERNAME / Library / Java / . Điều này sẽ liên kết 4 JAR từ thư mục "lib" (dt.jar, jconsole.jar, sa-jdi.jar và tools.jar)
  • bạn cũng sẽ cần thêm các JAR từ / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar và rt.jar)

6

Có thể bạn vẫn cần thêm JDK vào Eclipse (STS). Chỉ vì JDK có trên hệ thống không có nghĩa là Eclipse biết nơi để tìm nó.

Đi tới Tùy chọn> Java> JRE đã cài đặt

Nếu không có mục nhập cho 1.7 JDK, hãy thêm nó. Bạn sẽ phải trỏ Eclipse đến nơi bạn đã cài đặt 1.7 JDK của mình.

Nếu Eclipse không thể tìm thấy JRE tương thích 1.7, tôi đoán rằng nó chỉ sử dụng JRE mặc định của bạn và điều đó có thể vẫn đang trỏ đến Java 1.6, điều này sẽ gây ra các đường nguệch ngoạc màu đỏ của bạn.


Cuộc gọi tốt! Nhưng tôi cần hướng dẫn thêm một chút. Tôi vào trong JRE đã cài đặt -> Thêm và trỏ tới ... / jdk1.7.0 / jre và nó tìm thấy một loạt các tệp JAR. Tôi bấm Hoàn tất. Hạnh phúc cố gắng xây dựng nhưng bây giờ nó nói ... / jdk1.7.0 / jre / bin / java: không thể thực thi tệp nhị phân. Điều đó nghĩa là gì?
okysabeni

Tôi không thực sự chắc chắn. Bạn có thể thử trỏ eclipse vào thư mục jdk cơ sở thay vì thư mục jre. Tôi nghĩ đó là cách tôi thường làm trên Windows, mặc dù tôi chưa bao giờ tắt JDK mặc định trên máy Mac của mình. Nếu điều đó không hiệu quả, bạn có thể thử cài đặt một bản phân phối khác của JDK 7 - có một vài bản phân phối khác nhau có sẵn trên trang web openjdk-osx-build, có thể bạn đã lấy một bản không tương thích với hệ thống của mình?
Jon Quarfoth

Tôi đã thử điều đó. Nó mang lại cho tôi những lỗi của "Mục tiêu không phải là một gốc JDK thư viện hệ thống không được tìm thấy."
okysabeni

6

sau khi cài đặt 1.7jdk từ oracle, tôi đã thay đổi tập lệnh bash của mình để thêm:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home

và sau đó chạy java -versioncho thấy đúng phiên bản.





1

Các hướng dẫn của peter_budo hoạt động hoàn hảo. Tôi đã phải thêm các lọ trong / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / vào các thư viện dự án IntelliJ của mình. Bây giờ nó hoạt động như một sự quyến rũ. Lưu ý rằng tôi không cần bản thân IDE của mình chạy dưới 1,7; đúng hơn, tôi chỉ cần có thể biên dịch và chạy với 1.7. Rất có thể tôi sẽ tiếp tục sử dụng JRE của Apple để chạy IDE vì nó có thể ổn định hơn đối với các quy trình đồ họa (Swing, AWT). Giống như OP, tôi thực sự quan tâm đến việc thử nghiệm API NIO2 mới. Nhìn tốt cho đến nay. Cảm ơn, Peter.


1

Điều làm việc cho tôi trên Lion là cài đặt JDK7_u17 từ Oracle, sau đó chỉnh sửa ~ / .bash_profile để đưa vào: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home


0

Tôi đã cập nhật lên Yosemite và Android Studio sẽ không làm sạch các dự án của tôi hoặc Chạy chúng trên thiết bị ảo hoặc thiết bị thực vì lỗi sau:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Sau một số nghiên cứu và gặp sự cố khi chụp, tôi thấy rằng tệp JDK đang được trỏ tới "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" không có ở đó; tất cả "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" bị thiếu trong "/ System / Library / Java". Vì vậy, tôi đã sao chép "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" từ "/ Library / Java /" sang "/ System / Library / Java /" và cha ching! Tôi đã trở lại kinh doanh.


0

Bây giờ, Sử dụng lệnh

Cập nhật 2020: 04

Để cài đặt Java7 với homebrew chạy:

brew tap homebrew/cask-versions
brew cask install java7

Hy vọng điều này giúp đỡ.

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.