Đặt JDK 7 làm mặc định


83
 four@twenty:~$ file /etc/alternatives/java /etc/alternatives/javac
 /etc/alternatives/java:symbolic link to `/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
 /etc/alternatives/javac:symbolic link to `/usr/lib/jvm/java-6-openjdk-amd64/bin/javac'

Tha thứ cho sự noobishness của tôi nhưng tôi đang diễn giải các thông báo này là môi trường thời gian chạy bằng Java 7 nhưng trình biên dịch đang sử dụng Java 6?

Điều này có đúng không và nếu có, làm cách nào tôi có thể thiết lập nó để sử dụng phiên bản Java 7?

Câu trả lời:


155

Chuyển đổi giữa các phiên bản Java đã cài đặt có thể được thực hiện bằng update alternativeslệnh.

  • Để có danh sách các nền tảng Java đã cài đặt của bạn, hãy chạy lệnh sau từ thiết bị đầu cuối:

    sudo update-alternatives --config java

    Điều này sẽ cung cấp cho bạn một đầu ra danh sách tương tự như sau:

    There are 2 choices for the alternative java (providing /usr/bin/java).
       Selection    Path                                           Priority   Status
      ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-oracle/jre/bin/java         1070      auto mode
      1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
    * 2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1069      manual mode
    Press enter to keep the current choice[*], or type selection number: 

Trong trường hợp này, phiên bản Open JDK 6 đang chạy. Để chuyển sang Open JDK phiên bản 7, bạn sẽ chọn tùy chọn 1tại dấu nhắc và bấm Enterphím.

Bây giờ bạn sẽ chạy phiên bản OpenJDK 7. Không cần thay đổi nào khác để chuyển đổi các phiên bản Java của bạn.


Được rồi, cảm ơn. Tôi có thể đạt được bất cứ điều gì từ việc gỡ cài đặt jkd6 không?
Sải cánh

@ user142712 Không có vấn đề. Tôi tin rằng việc gỡ cài đặt cũng sẽ xóa plugin trình duyệt cũ hơn, có lợi cho bảo mật.
Kevin Bowen

1
Tôi sẽ không đi đến câu trả lời "Không có vấn đề" quá nhanh. Kiểm tra oracle.com/technetwork/java/javase/compabilities-417013.htmlngược dòng- tracker.org/java/versions/jdk.html . Không có khả năng tương thích 100% giữa hai phiên bản chính đó và điều đó có thể xảy ra (không chắc nhưng vẫn ...) rằng bạn có một ứng dụng X không thể chạy đúng với phiên bản thứ bảy. Cho đến khi bạn chắc chắn rằng sẽ không có vấn đề gì, tôi khuyên bạn nên giữ cả hai trong trường hợp bạn cần phiên bản trước.
rbaleksandar

Chỉ để được rõ ràng. Nhận xét "không có vấn đề" là một cách khác để tôi nói rằng bạn được chào đón, tôi chưa bao giờ tuyên bố rằng sẽ không có vấn đề gì với việc cài đặt Java của bạn.
Kevin Bowen

1
giải pháp thay thế cập nhật được cung cấp bởi câu trả lời này sẽ chỉ chuyển JRE . Xem bên dưới để biết cách thích hợp để chuyển đổi toàn bộ JDK (trình biên dịch và các công cụ khác) bằng một lệnh
J. Will

15

Câu trả lời được bình chọn nhiều nhất gợi ý sử dụng

cập nhật thay thế

chỉ trả lời một phần câu hỏi Bằng cách sử dụng nó, bạn rất có thể sẽ không phù hợp với môi trường Java của mình.

Điều này đặc biệt quan trọng nếu bạn có JDK, không phải JRE, như

[sudo] cập nhật thay thế --config java

sẽ thay đổi phiên bản dành cho các javalệnh chỉ , tức là repoint chính JRE thực thi.

javacvà các công cụ JDK khác vẫn sẽ trỏ đến phiên bản java khác. Để chuyển đổi hoàn toàn, bạn phải tiếp tục với update-alternativestất cả các công cụ khác.

Cách thích hợpdễ dàng hơn nhiều để chuyển đổi các phiên bản Java trong bản phân phối Linux bằng hệ thống "thay thế" - tức là trong Debian hoặc nó là dẫn xuất Ubuntu - là sử dụng lệnh update-java-Alternators .

update-java-thay thế -l - sẽ liệt kê các phiên bản Java đã cài đặt

[sudo] update-java-thay thế -s - sẽ chuyển sang phiên bản được yêu cầu

Nguồn


ĐIỀU NÀY! Cảm ơn bạn rất nhiều. Tôi ước tôi có thể cung cấp cho bạn nhiều điểm hơn trên Internet, nhưng tôi chưa nghĩ mình có quyền đó.
Nenotlep

10

Bạn có thể chạy sudo update-alternatives --config javavà chọn JDK 7, nếu nó được cài đặt.


Được rồi, chúc mừng, Nó nói rằng tôi có hai trong số JKD7 đã cài đặt một trạng thái liệt kê là tự động hướng dẫn khác. Có sự khác biệt nào không?
Sải cánh

Có thông tin ở đây: linux.die.net/man/8/update-alternigin nhưng tôi sẽ chọn tự động.
Frederik Spang

"Mỗi nhóm liên kết, tại bất kỳ thời điểm nào, ở một trong hai chế độ: tự động hoặc thủ công. Khi một nhóm ở chế độ tự động, hệ thống thay thế sẽ tự động quyết định, khi các gói được cài đặt và gỡ bỏ, liệu và cách cập nhật các liên kết Trong chế độ thủ công, hệ thống thay thế sẽ không thay đổi các liên kết; nó sẽ để lại tất cả các quyết định cho quản trị viên hệ thống. "
mpen 17/12/13

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.