Làm cách nào tôi có thể chuyển đổi giữa hai phiên bản Java trong Mountain Lion khi mà Tùy chọn Java không còn nữa?


32

Tôi có hai phiên bản Java được cài đặt với Mountain Lion:

Bản cập nhật từ Apple loại bỏ các tùy chọn Java . Trong một câu hỏi khác có người thắc mắc về việc loại bỏ tiện ích đó.

Câu hỏi của tôi là khác nhau:

  • Làm cách nào tôi có thể chuyển đổi giữa hai phiên bản khi Java Preferences không còn nữa?

Trước đây tôi đã sử dụng tiện ích của Apple để dễ dàng thiết lập các tùy chọn Java. Không có tiện ích đó, có một cách dễ dàng và nhanh chóng?


Có một số lý do bạn không thể cài đặt lại Tùy chọn Java ?
chharvey

@ TestSubject528491 Làm thế nào tôi có thể làm điều đó?
Maverik

Tôi nghĩ rằng điều này sẽ giúp bạn, tôi chưa thử nó trong máy của tôi. Xem bước 12 và 13 từ liên kết sau wikihow.com/Install-Oracle-Java-on-Ubfox-Linux . Bạn có thể lặp lại các bước để chuyển đổi giữa java .. hy vọng điều này sẽ giúp bạn ..
Dilip Rajkumar

@DilipRajkumar Nó dành cho linux ....
Maverik

Xin lỗi, tôi đã sai khi cho rằng lệnh linux sẽ hoạt động trên Mac .. Nếu tôi gặp may mắn với một giải pháp khác tôi không gợi ý ..
Dilip Rajkumar

Câu trả lời:


12

Bạn có thể cần hai cách tiếp cận:

  • một để chuyển đổi phiên bản cho trình cắm thêm applet
  • một cách tiếp cận khác để chuyển đổi phiên bản cho các phần khác của JRE mà không cần chuyển đổi phiên bản cho trình cắm thêm applet.

Trường hợp sử dụng gần đây của tôi :

  • Java 8 cho các ứng dụng không sử dụng trình cắm
  • Java 7 Update 9 cho trình cắm thêm applet.

Để chuyển đổi trình cắm applet nhưng không phải các phần khác của JRE / JDK từ Java 8 sang Java 7 Update 9

  1. thoát khỏi trình duyệt web và bất kỳ ứng dụng nào khác sử dụng trình cắm thêm Java hoặc trình cắm thêm Java
  2. cài đặt JDK 8
  3. đặt trình cắm sang một bên
  4. cài đặt JRE 7 Cập nhật 9 hoặc JDK 7 Cập nhật 09.

Đặt sang một bên: di chuyển đề xuất

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Nếu bạn có kế hoạch chuyển đổi thường xuyên, bạn có thể thích một vị trí tạm thời khác.

Kết quả

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

Cùng một lúc:

Ảnh chụp màn hình xác minh phiên bản Java của Oracle trong Safari

Để chuyển đổi trình cắm applet nhưng không phải các phần khác của JRE / JDK từ Java 7 Update 9 sang Java 6 Update 37

Câu trả lời dưới đây:


Để chuyển đổi JRE nhưng không phải là trình cắm thêm applet từ Java 8 sang Java 7 Update 9

Cài đặt JDK 7 Cập nhật 09 rồi JDK 8

  • HĐH và ứng dụng sẽ mặc định sử dụng phiên bản lớn nhất.

Thoát khỏi mọi ứng dụng sử dụng Java. Không cần phải thoát khỏi trình duyệt.

Đặt thư mục thành một bên jdk1.8từ

/Library/Java/JavaVirtualMachines

  • HĐH và ứng dụng sẽ sử dụng Java 7 Update 9.

Để chuyển đổi JRE nhưng không phải là trình cắm thêm applet từ Java 7 Update 9 sang Java 6 Update 37

Thoát khỏi mọi ứng dụng sử dụng Java. Không cần phải thoát khỏi trình duyệt.

Đặt thư mục thành một bên jdk1.7từ

/Library/Java/JavaVirtualMachines

  • HĐH và ứng dụng sẽ sử dụng Java 6 Update 37.

Thí dụ

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Nói chung là

Đối với người dùng OS X, một số nội dung do Oracle cung cấp ban đầu gây hiểu nhầm:

Vv và như vậy.

Sự đơn giản

Mặc dù không có cách nào ở trên đơn giản như chuyển đổi với ứng dụng Tùy chọn Java được Apple cài đặt trước đó, nhưng cách tiếp cận tương đối đơn giản là đặt sang một bên (không cần gỡ bỏ đặc biệt) là gợi nhớ đến mong muốn để cài đặt drag-and-drop ... trước đây đã bày tỏ trong các openjdk-OSX-xây dựng khu vực.

Ai đó có thể muốn xây dựng một ứng dụng, nhưng tôi không nên khuyên bạn nên sử dụng symlink - nó sẽ hoạt động, nhưng có thể không phù hợp với các cách tiếp cận kéo và thả trong tương lai để cài đặt.

Ghi chú bên

Tại thời điểm viết bài, các bản phát hành được hỗ trợ gần đây nhất Oracle thực hiện cập nhật công khai có sẵn là (đối với các nền tảng không phải OS X) Bản cập nhật 37 và (cho các nền tảng bao gồm OS X) Bản cập nhật Java 7).

Khi các bản phát hành lớn hơn sẽ được cung cấp, vui lòng diễn giải lại câu trả lời này cho phù hợp.

Thuật ngữ phiên bản Java trong câu trả lời này phù hợp với thuật ngữ của Trung tâm trợ giúp Java .


Bạn có thực sự đang đề cập đến Java 8 hay đó là một lỗi? :-)
Maverik

1
Thực sự ;-) Vui lòng xem các câu hỏi được liên kết, cột bên tay phải.
Graham Perrin

4
Đây là một mẹo nếu bạn đang sử dụng JDK8 và muốn chuyển đổi thường xuyên. Đơn giản chỉ cần chmod 0000 thư mục JDK8 để tắt sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/và bật lại sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan

1
Đề xuất cuối cùng của @BrettRyan đã làm việc hoàn hảo cho tôi. Tôi nghĩ đó là cách dễ nhất để đi.
Artem

1
Cảm ơn bạn rất nhiều @BrettRyan đó là cách đơn giản nhất !!! Tôi đề nghị tác giả của câu trả lời để thêm nó vào. Tôi đã tạo một .sh trong thư mục nhà của mình bằng các lệnh và tạo một Automator liên kết với một khóa chuyển từ cái này sang cái khác. Kinh ngạc!
Panthro

29

Mở một thiết bị đầu cuối sử dụng lệnh này:

/usr/libexec/java_home -v 1.6 

Bạn có thể thay đổi 1.6 thành bất kỳ phiên bản java nào bạn muốn sử dụng và lệnh sẽ xuất ra vị trí của phiên bản java đó. (ví dụ: / System / L Library / Java / JavaVirtualMachines / 1.6.0.jdk / Content / Home)

sau đó bạn có thể đặt JAVA_HOME như bình thường với đầu ra của lệnh trước đó. I E:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Vì vậy, để đơn giản hóa; một cái gì đó như thế này sẽ hoạt động:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

nhớ kiểm tra phiên bản với:

java -version

Hy vọng nó giúp.


4
Đây là câu trả lời hữu ích nhất cho vấn đề này mà tôi có thể tìm thấy ở bất cứ đâu trực tuyến. CẢM ƠN BẠN!
SearchTools-Avi

1
Ok, đây sẽ là câu trả lời được chấp nhận. Tôi có một bản cập nhật bắt buộc JAR cho một máy chủ ứng dụng tôi đã cài đặt và nó sẽ CHỈ chạy trên Java 6. Sử dụng cái này, tôi có thể chuyển sang Java 6, chạy trình cập nhật, sau đó chuyển trở lại. Bây giờ tôi có thể cập nhật máy chủ ứng dụng để chạy trên Java 7.
Adrian J. Moreno

4

Có vẻ như bạn sẽ phải làm nó bằng tay. Tài liệu của Oracle tuyên bố rằng chỉ có thể cài đặt một JRE tại một thời điểm .

Trang hỗ trợ này của Apple mô tả cách chuyển đổi giữa Apple SE 6 JRE và Oracle SE 7 JRE . Tóm lại, để chuyển từ JRE của Oracle trở lại Apple, hãy khởi động ứng dụng Terminal và gõ như sau:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

Có nhiều hướng dẫn (và tốt hơn) trên trang hỗ trợ về cách chuyển Web Start trở lại JRE 6 và cách chuyển mọi thứ trở lại Oracle JRE 7 (cài đặt lại JRE).

Không đơn giản như sử dụng tiện ích Java Preferences, nhưng tốt hơn là không có gì.


1
Việc sử dụng thuật ngữ JRE gần đây của Oracle gây hiểu lầm cho người dùng OS X. JRE không chỉ là trình cắm thêm.
Graham Perrin


-4

Tại sao bạn cần cài đặt 2 phiên bản Java?

Apple không cài đặt Java làm bản cập nhật mặc định (từ Lion trở đi tôi tin). Cách tốt nhất để kiểm tra / cài đặt Java trên máy Mac như sau:

  1. Mở Terminal. Nhập "java" (không có trích dẫn của khóa học)
  2. Nếu java không có mặt, bạn nhận được thông báo sau: "Không có Java Runtime, yêu cầu cài đặt"
  3. Java bắt đầu cài đặt bình thường (đây là tệp thực thi sai khi bắt đầu cài đặt)
  4. Nếu bạn có java để kiểm tra phiên bản, trong loại thiết bị đầu cuối "java-version"

Nếu bạn muốn cài đặt một phiên bản java khác: Chỉ cần truy cập trang web oracle và tải xuống jdk mới nhất / cũ hơn.


Tôi đã có hai phiên bản Java như tôi đã viết trong câu hỏi. Tôi đang hỏi làm thế nào để thay đổi cái mặc định.
Maverik

Tôi nghĩ rằng nó tự động chuyển sang phiên bản mới nhất / phiên bản mới nhất được cài đặt. Trong trường hợp của tôi, tôi đã cài đặt jdk 7 cuối cùng. Vì vậy, đó là một trong những hoạt động theo mặc định.
SashaZd

3
Tôi muốn có thể chuyển đổi giữa các phiên bản.
Maverik

Có sự khác biệt giữa Apple JDK 6 và Oracle JDK 7 có thể gây ra sự không tương thích, cả về thời gian biên dịch và thời gian chạy.
JohnnyO

1
Nói chung, chúng tôi không cố gắng thay đổi tiền đề của ai đó trừ khi chúng tôi có thể đưa ra một giải pháp thay thế cạnh tranh hoặc hấp dẫn khi câu trả lời đơn giản là không. Chúng tôi cũng không khuyến khích việc bỏ phiếu vì vậy tôi đã chỉnh sửa câu trả lời đó.
bmike
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.