Cài đặt Java trên OS X 10.9 (Mavericks)


321

Tôi đã cài đặt JDK trên Mac OS X v10.8 (Mountain Lion). Khi tôi nâng cấp nó lên Mac OS X v10.9 (Mavericks) và chạy java -versiontrong thiết bị đầu cuối, nó hiển thị:

Không có thời gian chạy Java, yêu cầu cài đặt.

Sau đó, tôi đã tự cài đặt JDK (1.7) trên máy Mac của mình. Có vẻ như việc cài đặt đã làm việc tốt. Khi cài đặt xong, tôi mở terminal và gõ java -version. Nó cũng cho thấy lỗi tương tự:

Không có thời gian chạy Java, yêu cầu cài đặt.

Làm thế nào tôi có thể giải quyết vấn đề này?


1
Tôi không biết có vấn đề gì trong thiết bị đầu cuối nhưng tôi chạy nhật thực và tất cả các dự án đang biên dịch tốt trong mavericks
Sunny

1
Có vẻ như trình khởi chạy java cũ chỉ hỗ trợ jdk 1.6 nhưng mavericks không được cài đặt 1.6 theo mặc định.
Shawn

1
Bạn đã cài đặt java 6, không phải java 7 như OP ban đầu ngụ ý họ cần. Tôi quan tâm đến cách giải pháp đó đạt được. Ngoài ra, phải có một cách tiếp cận 'thay thế' ở đây trực tiếp giải quyết phản hồi từ thiết bị đầu cuối.
Rondo

4
Điều này rất tốt cho Java 6, nhưng làm thế nào bạn có thể khiến Java 7 hoạt động?
190290000 Người đàn ông rúp

2
Đã thêm câu trả lời tiềm năng để cài đặt JRE Java 7 và để nó hoạt động trong Terminal: stackoverflow.com/a/19582689/346286
tương tự

Câu trả lời:


279

Mavericks mới (10.9) đã cho tôi xem "Yêu cầu cài đặt", nhưng không có gì xảy ra.

Giải pháp là tải xuống và cài đặt thủ công gói Java chính thức cho OS X, có trong Java cho OS X 2013-005.

Cập nhật: Như đã đề cập trong các bình luận bên dưới, có một phiên bản mới hơn của cùng gói này:

Java cho OS X 2014-001

Java cho OS X 2014-001 (Sửa lỗi hạn chót ở trên)

Java cho OS X 2014-001 bao gồm các cải tiến cài đặt và thay thế tất cả các phiên bản Java trước cho OS X. Gói này cài đặt cùng phiên bản Java 6 có trong Java cho OS X 2013-005.


Tương tự cho tôi. Một lựa chọn khác là cài đặt Java từ Oracle. Những người bạn nghĩ là tốt hơn? Oracle dường như đã cập nhật Java nhanh hơn Apple.
Ngọc Phạm

2
nhưng cái này cung cấp cho bạn JDK 6. làm thế nào chúng ta có thể sử dụng JDK 6 trực tiếp?
Shawn

2
@Shawn Apple vô hiệu hóa đã cài đặt JDK 7. Nhưng bạn có thể nhận được một số Câu hỏi thường gặp và cài đặt từ đây: java.com/en/doad/faq/java_mac.xml nhưng tôi đã không dùng thử.
Chàng trai

Nếu bạn đã cài đặt cả java6 và java7, bạn có thể chọn v6 trong trình bao của mình với: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Nội dung / Trang chủ
Jürgen Strobel

1
Tại sao bạn muốn sử dụng java 32 bit trên HĐH 64 bit? Java 64 bit thực sự nhanh hơn 32 bit theo Mavericks.
MiB

196

Nếu bạn chỉ muốn cài đặt JRE chính thức mới nhất từ ​​Oracle, bạn có thể lấy nó ở đó, cài đặt nó và xuất JAVA_HOME mới trong thiết bị đầu cuối.

  • Mở Terminal của bạn
  • java -version cung cấp cho bạn một lỗi và một cửa sổ bật lên
  • Nhận dmg JRE trên http://www.oracle.com/technetwork/java/javase/doads/index.html
  • Cài đặt nó
  • Trong thiết bị đầu cuối của bạn, gõ: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version bây giờ cho bạn java version "1.7.0_45"

Đó là cách sạch nhất mà tôi tìm thấy để cài đặt JRE mới nhất.

Bạn có thể thêm export JAVA_HOMEdòng trong của bạn .bashrcđể có javavĩnh viễn trong Terminal của bạn:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc

37
Tôi nghĩ rằng nó có vẻ hơi tanh khi định nghĩa JAVA_HOMEđể chỉ rõ đâu là plugin trình duyệt thay vì VM thực sự. Khi bạn cài đặt các công cụ dòng lệnh XCode, bạn sẽ có một công cụ để nhận đường dẫn chính xác , /usr/libexec/java_home. Xem developer.apple.com/l Library / mac / documentation / Darwin / Reference / Lỗi .
Ilkka

8
@Ilkka - nghe có vẻ tanh, nhưng đó thực sự là nơi JRE của Oracle cài đặt. Java của Apple (dừng lại ở java 6) không hòa trộn với oracle khá độc đáo như người ta có thể thích
Orion Edwards

12
Một đồng nghiệp của tôi (người không may không có danh tiếng cần thiết ở đây để thêm nhận xét) muốn thêm rằng cài đặt JAVA_HOME nên làexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller

1
Tôi đã cài đặt jdk7u45 từ Oracle và vẫn sử dụng export JAVA_HOME = $ (/ usr / libexec / java_home) trong hồ sơ bash của tôi. jdk7u45 hoạt động rất độc đáo bao gồm bảng ưu tiên hệ thống java. Bây giờ tôi đang nâng cấp lên jdk7u51.
MiB

2
Tôi đã phải thêm export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"vào ~ / .profile thay vì ~ / .bashrc hoặc ~ / .bash_profile để có được tác phẩm này.
LarS

64

Nơi thích hợp để tải xuống JDK cho Java 7 là Tải xuống Java SE .

Tất cả các liên kết khác được cung cấp ở trên, như xa như tôi có thể nói, một trong hai cung cấp JRE hoặc Java 6 tải (tình cờ, nếu bạn muốn chạy Eclipse hay IDE khác, như IntelliJ IDEA , bạn sẽ cần JDK, không những JRE ).

Về IntelliJ IDEA - vẫn sẽ yêu cầu bạn cài đặt Java 6 vì nó dường như cần một trình tải lớp cũ hơn hoặc một cái gì đó: chỉ cần làm theo các hướng dẫn khi cửa sổ bật lên xuất hiện và nó sẽ cài đặt JDK 6 ở đúng nơi.

Sau đó, bạn sẽ cần phải làm điều sudo ln -snfđược đề cập trong câu trả lời ở trên:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(được sao chép ở đây vì nó đã được đề cập rằng "ở trên" cuối cùng có thể không có ý nghĩa vì các câu trả lời được sắp xếp lại).

Tôi cũng đặt JAVA_HOMEđiểm của mình đến nơi jdk_1.7.0_xx.jdkđã được cài đặt:

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

Sau đó thêm nó vào PATH:

export PATH=$JAVA_HOME/bin:$PATH

Thay thế là đi lang thang với mê cung điên cuồng của các siêu liên kết của Apple, nhưng thực sự cuộc sống quá ngắn để bận tâm.


4
Xem bình luận của tôi cho một câu trả lời khác cho những gì có lẽ là một cách tốt hơn để có được con đường đó.
Ilkka

1
Vì câu trả lời này có nhiều upvote hơn, nên bit nói sudo ln -snftrong câu trả lời ở trên không còn chính xác nữa. Đó thực sự là đề cập đến câu trả lời của ông Ronald
Karthic Raghupathi

@KarthicRaghupathi Tôi không chắc là tôi hoàn toàn hiểu nhận xét (việc sử dụng thisthathơi khó hiểu) nhưng bạn vẫn cần một liên kết tượng trưng từ địa điểm / Sytem / Library / etc đến địa điểm thực tế nơi Oracle cài đặt JVM (/ Library / etc .) hoặc các ứng dụng sẽ không thể tìm thấy thời gian chạy Java.
Marco Massenzio 23/12/13

@Marco Bây giờ bạn đề cập đến nó, khi tôi đọc bình luận của riêng tôi, nó không thực sự có ý nghĩa nhiều. :) Cho phép tôi làm rõ. Trong câu trả lời của bạn, bạn viết "Sau đó, bạn sẽ cần phải làm điều sudo ln -snfđược đề cập trong câu trả lời ở trên;". Câu trả lời di chuyển lên hoặc xuống dựa trên số phiếu bầu họ nhận được. Ý định của tôi là chỉ cung cấp một tài liệu tham khảo trực tiếp cho câu trả lời có sudo ln -snflệnh.
Karthic Raghupathi

Đã chỉnh sửa - nhưng không thực sự chắc chắn rằng việc đặt hàng lại thực sự xảy ra: tất cả chúng dường như là nơi chúng ở, bất kể upvote. NVM
Marco Massenzio

14

Tôi đã tải xuống và cài đặt JDK 1.7 từ Oracle . Trong bàn điều khiển / trong Terminal Java 7 hoạt động tốt.

Khi tôi khởi động một chương trình Java (như Eclipse ) thông qua GUI, tôi nhận được:

Để mở "Eclipse.app", bạn cần có thời gian chạy Java SE 6. Bạn có muốn cài đặt một cái bây giờ?

Vì tôi không muốn cài đặt phiên bản Java cũ, tôi đã sử dụng cách giải quyết sau:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Tín dụng cho monkehWorks .


1
Tôi cần phải sử dụng ln -snfvì tôi đã Operation not permittedln -sf
Lars Blumberg

Thx, tôi đã chỉnh sửa câu trả lời và thêm tùy chọn -n vào lệnh ln.
Ông Ronald

+1 Chính xác những gì tôi đang tìm kiếm. Cảm ơn! CLI đã nhận được tham chiếu đến JDK 7 sau khi cài đặt. Tuy nhiên, để có được các ứng dụng GUI để nhận JDK chính xác, bước này là cần thiết.
Karthic Raghupathi

Hy vọng, nhưng nó không làm việc cho tôi. Android Studio 0.3.2 khẳng định "tải xuống Java 6" mà tôi sẽ không làm. JDK Oracle Java 7 được cài đặt.
akauppi

Bạn cần một phiên bản 64 bit của Eclipse. 32-bit yêu cầu Apple java.
Thorbjørn Ravn Andersen

4

Lỗi này xảy ra do tệp plist của IntelliJ IDEA yêu cầu phiên bản Java 1.6 *. Để giải quyết vấn đề này, thay thế 1.6 * bằng 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>

Điều này đã làm điều đó cho tôi. Vấn đề của tôi là khi tôi cập nhật lên osx 10.9, tôi vẫn có thể truy cập java từ thiết bị đầu cuối và mọi thứ khác (bao gồm cả nhật thực hoạt động tốt). Chỉ có Android Studio gây ra lỗi này.
ucsunil

Điều này không hoạt động với tôi trên OS X 10.10.1, nó phàn nàn rằng không có phiên bản 1.8 nào khả dụng (ngay cả khi JRE 8 được cài đặt đúng cách).
Emmanuel Bourg

Bạn đã kiểm tra xem JAVA_HOME đã được đặt chưa?
Fabio Fumarola

3

OP ngụ ý rằng Java 7 là cần thiết. Và Java 6 thực tế không còn được 'hỗ trợ' nữa, vì vậy 7 là phiên bản bạn nên cài đặt vào thời điểm này trừ khi bạn có những lo ngại về ứng dụng cũ.

Bạn có thể lấy nó ở đây: http://java.com/en/doad/mac_doad.jsp?locale=en


Chúng ta không nên cho rằng phân phối Java 6 hiện tại của Apple không được hỗ trợ.
Graham Perrin

Tôi đã đặt từ 'được hỗ trợ' trong dấu ngoặc kép để tránh cố gắng trêu chọc một vấn đề phức tạp. Oracle tính phí cho bất kỳ hỗ trợ nào trong 6 ... và khoản phí hỗ trợ đó cũng sẽ được áp dụng một cách hợp lý cho Apple; vì vậy, Apple 'tự mình' không có hợp đồng. Họ có một cái, và có kế hoạch làm việc thông qua các bản vá cho MacOSX không? Hợp đồng vẫn cho phép phân phối lại? Bây giờ đã có 2 bản cập nhật Java 7 từ Oracle kể từ lần cập nhật cuối cùng của Apple lên 6. Trong lịch sử, chúng có xu hướng phát hành theo từng bước. Giả định, có lẽ; Một giả định an toàn? Có vẻ như vậy.
Rondo

3

Kinh nghiệm của tôi để cập nhật Java SDK trên OS X 10.9 dễ dàng hơn nhiều.

Tôi đã tải xuống bản mới nhất Java SE Development Kit 8, từ các bản tải xuống SE và cài đặt tệp .dmg. Và khi gõ java -versionvào terminal, phần sau đây được hiển thị:

phiên bản java "1.8.0_11"

Môi trường thời gian chạy Java (TM) SE (bản dựng 1.8.0_11-b12)

Máy chủ 64-bit Java HotSpot (TM) (bản dựng 25.11-b03, chế độ hỗn hợp)



1

Từ OP:

Cuối cùng tôi đã cài đặt lại nó từ Java cho OS X 2013-005. Nó đã giải quyết vấn đề này.


1

Lỗi này có nghĩa là Java không được cài đặt đúng.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

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

PS - Bia-thùng là gì? Homebrew-Cask mở rộng Homebrew và giải quyết rắc rối khi thực hiện một lệnh bổ sung - Để cài đặt, hãy kéo biểu tượng này Trả giá sau khi cài đặt Ứng dụng bằng Homebrew .

NB - Vấn đề này không dành riêng cho Mavericks, bạn sẽ nhận được gần như tất cả OS X, bao gồm cả EL Capitan.


0

Không cần cài đặt JDK, bộ công cụ dành cho nhà phát triển , chỉ có JREmôi trường thời gian chạy .


6
Đúng. Tuy nhiên, những gì Apple cung cấp là JDK và JRE từ Oracle chỉ có ở đó cho Plugin Internet, javalệnh không được liên kết tự động trên toàn hệ thống nên bạn vẫn thấy "Không có thời gian chạy Java, yêu cầu cài đặt." khi bạn gõ java -versionvào Terminal.
Ngọc Phạm
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.