Câu hỏi Làm thế nào để cài đặt OpenJDK 8 trên 14.04 LTS?


(2017-08-08: Câu hỏi được làm sạch và tóm tắt trong một câu trả lời mới)

Java 8 hiện khả dụng theo http://openjdk.java.net/projects/jdk8/, nhưng http://openjdk.java.net/install/ chưa đề cập đến cách cài đặt OpenJDK 8 (không phải Oracle Java) trên Ubuntu 14.04 Hỗ trợ dài hạn. (Đối với 14.10 và sau đó chỉ chạy apt-get install openjdk-8-jdk)

Làm thế nào và khi nào điều này có thể được thực hiện?

(Hiện tại chúng tôi sẽ sử dụng Oracle Java - giải pháp tối ưu cho tôi, tuy nhiên, OpenJDK từ kho lưu trữ Ubuntu, cho đến khi Oracle Java có sẵn trực tiếp và dễ dàng từ kho lưu trữ Ubuntu)



284
2018-05-12 11:00


gốc


Bạn cần phải tự biên dịch nó. Dưới đây là cách thực hiện: github.com/hgomez/obuildfactory/wiki/… Thay đổi tên tệp để khớp với phiên bản 8 ;-) - Rinzwind
Azul đã bắt đầu cung cấp các bản dựng OpenJDK dưới tên "Zulu" có thể được tải xuống, giải nén và sử dụng tự động. (Họ kiếm tiền từ hỗ trợ). azulsystems.com/products/zulu/downloads - Thorbjørn Ravn Andersen
Đáng chú ý, cùng một ppa mà apt-fast cho trusty được lưu trữ trên, ppa:saiarcot895/myppa, có phiên bản openjdk-8 hoạt động. nhún vai - ThorSummoner
Khi thời gian diễu hành trên, có vẻ như giải pháp đơn giản nhất là đơn giản để opgrade 16.04 LTS khi có sẵn. - Thorbjørn Ravn Andersen
Và openjdk-9-jdk nằm trong 16.04 LTS :) (có thể chỉ là một trình giữ chỗ cho rnow) - Thorbjørn Ravn Andersen


Các câu trả lời:


Bạn có thể làm điều này cho;

Cập nhật cuối cùng

JDK

sudo apt-get install openjdk-8-jdk

JRE

sudo apt-get install openjdk-8-jre

Cập nhật cũ

Tôi tìm thấy hai kho lưu trữ nhưng tôi không khuyên bạn nên

  • OpenJDK xây dựng (tất cả các archs)

    ppa:openjdk-r/ppa
    
  • OpenJDK 8 backport cho đáng tin cậy

    ppa:jochenkemnade/openjdk-8
    

Tin nhắn gốc

Nếu bạn thực sự muốn sử dụng OpenJDK, bạn phải biên dịch từ nguồn. Vẫn chưa có bất kỳ PPA nào cho OpenJDK.

Nó đã được yêu cầu tại https://bugs.launchpad.net/ubuntu/+bug/1297065

Tôi khuyên bạn nên sử dụng Webup8 Trình cài đặt Oracle Java8

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer

Để tự động thiết lập các biến môi trường Java 8

sudo apt-get install oracle-java8-set-default

Kiểm tra nó

java -version

Vì vậy, bạn phải đợi để sử dụng OpenJDK8


259
2018-05-12 16:49



@ JohnMerlino dự đoán của tôi sẽ là PPA cho phép cập nhật tự động khi các phiên bản mới được phát hành. - Thorbjørn Ravn Andersen
openjdk-8 hiện đang ở dạng Utopic. bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1341628 đã được nâng lên backport đến 14.04 vì nó là LTS: - Thorbjørn Ravn Andersen
Tại sao chỉnh sửa mới? Dường như vẫn chưa có trong repo 14.04 và sudo apt-get install openjdk-8-jdk không làm việc ít nhất cho tôi. - xji
Vào năm 2016-01-11, các PPA Ubuntu không chính thức vẫn còn cần thiết, vì OpenJDK 8 vẫn chưa được đưa vào backport. Tôi không coi đây là câu trả lời cho câu hỏi của tôi mặc dù dường như những người khác làm như vậy. - Thorbjørn Ravn Andersen
Câu trả lời này rất gây hiểu lầm do không đầy đủ, nó nói rằng nó không đề nghị PPA được đề cập nhưng sẽ không hoạt động nếu không có nó. - Reinier Post


sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac

167
2017-08-27 15:25



Kho lưu trữ này là ngày; tính đến hôm nay phiên bản openjdk 1.8 mới nhất là 66. Phiên bản có sẵn trong kho lưu trữ này là 45. - mattm
Không thể tìm nạp ppa.launchpad.net/openjdk-r/ppa/ubuntu/pool/main/o/openjdk-8/…  502 apt-cacher: lỗi libcurl: Lỗi khi nhận dữ liệu từ đồng đẳng - Rajesh Hatwar
Đây là các bước tối thiểu chính xác. 4 và 5 là tùy chọn và có thể không bắt buộc. - Air
Không hoạt động với Ubuntu 14.04 E: Package 'openjdk-8-jdk' has no installation candidate - Naive
Điều này làm việc cho tôi khi nâng cấp Jenkins (phiên bản mới hơn yêu cầu Java8, hệ thống của tôi chỉ có Java7 được cài đặt). Đáng chú ý, dòng thứ tư rất quan trọng để khiến Jenkins cư xử đúng đắn; cho đến khi chạy nó, tôi vẫn tiếp tục Jenkins requires Java8 or later, but you are running 1.7.0_121-b00 from /usr/lib/jvm/java-7-openjdk-amd64/jre. Có một upvote ... Tôi sẽ cung cấp cho bạn nhiều hơn nếu tôi có thể. - Doktor J


OpenJDK 8 được phát hành vào tháng 3 năm 2014. Tính đến thời điểm này, không có gói OpenJDK 8 trong kho lưu trữ chính thức của Ubuntu cho bất kỳ bản phát hành Ubuntu nào. Họ "sẽ sớm có mặt", như Trang dự án JDK 8 nói, cho một số định nghĩa của sớm.

Đầu tiên, các gói OpenJDK 8 sẽ nằm trong bản phát hành Ubuntu. Điều này có thể xảy ra trong chu kỳ phát triển 14.10, nhưng không có lịch trình được thiết lập theo như tôi biết. Một số gói xem trước đã được tạo và sẵn sàng để thử nghiệm, xem thông báo trên debian-java và Ubuntu openjdk danh sách mail. Tại một số điểm, các gói này sẽ được tải lên các kho phát triển Debian và Ubuntu.

Khi OpenJDK 8 có trong phiên bản phát triển Ubuntu, thì có thể yêu cầu nó được đưa trở lại 14.04. Lưu ý rằng nó sẽ không bao giờ có sẵn trong chính trusty kho lưu trữ, nhưng nếu bạn sử dụng trusty-backports sau đó nó có thể được cài đặt từ đó tại một số điểm. Đọc về quy trình yêu cầu backport trong Ubuntu đây.


62
2018-05-13 12:52



Tôi đã cố gắng trả lời câu hỏi của bạn "như thế nào và khi nào" với những ràng buộc mà bạn dường như muốn: phải từ kho chính thức, phải là OpenJDK và phải là bản phát hành LTS 14.04. - Mike Miller
Tháng 2 năm 2016 và java 8 vẫn chưa có trên Ubuntu 14.04 LTS. Điều này thật đáng thất vọng. - Bhavin Doshi
Đó là tháng 4 năm 2016, vẫn không có java 8 ... - Stephan Henningsen
Ubuntu 16.04 sắp ra mắt vào tháng 4 năm 2016, nó sẽ có OpenJDK 8. - Mike Miller
Đó là tháng 9 năm 2016 và Ubuntu 14.04 LTS sẽ vẫn được hỗ trợ cho đến năm 2019 ... và rất nhiều nơi sẽ mất nhiều thời gian để áp dụng 16.04 do các thay đổi quy mô lớn hơn (ví dụ: systemd), vì vậy nó vẫn gây thất vọng java 8 không dễ cài đặt qua apt trên 14.04 :( - geerlingguy


Lưu ý - Thao tác này sẽ chỉ hoạt động với 14.10 trở lên:

1 năm muộn, nhưng như ngày nay nó hoạt động như mong đợi với apt-get.

Để cài đặt JDK:

$ sudo apt-get install openjdk-8-jdk

Để cài đặt JRE:

$ sudo apt-get install openjdk-8-jre

Cách đặt JDK mặc định

Cách nhanh nhất

Chạy $ sudo update-alternatives --config java và nhập số mà JDK sử dụng theo lựa chọn của bạn.

Cách thứ hai

Liệt kê các JDK có sẵn:

$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

Bây giờ, để sao chép và dán vị trí của Open JDK 8 để khớp lệnh dưới đây:

$ sudo update-java-alternatives -s /usr/lib/jvm/java-1.8.0-openjdk-amd64

33
2018-04-17 19:04



Tôi vẫn chỉ nhìn thấy JDKs 6 và 7, không có openjdk-8-jdk trên Linux 14.04 của tôi, sau khi sudo apt-get update. Bạn đã thêm một số kho lưu trữ đặc biệt? Tôi đã bật backport đáng tin cậy. - akauppi
Tôi nghĩ bạn đang chạy 14.10 hoặc 15.04, phải không? - akauppi
Tôi không thể tái sản xuất trên 14.04 LTS. Vui lòng xác nhận đây là phiên bản. - Thorbjørn Ravn Andersen
@akauppi bạn nói đúng !! Tôi đang chạy 14,10. Xin lỗi vì sự bất tiện này, tôi có nên xóa câu trả lời của mình không? - caraca
Tôi sẽ không muốn nó loại bỏ - đối với một số, sử dụng 14,10 thay vì 14,04 có thể là một thay thế hoàn toàn tốt. - akauppi


Dưới đây là những gì tôi sử dụng để thiết lập Oracle Java 7 và Java 8 [lưu ý: không OpenJDK] từ đầu trên Ubuntu 14.04 LTS:

apt-get -y -q update
apt-get -y -q upgrade
apt-get -y -q install software-properties-common htop
add-apt-repository ppa:webupd8team/java
apt-get -y -q update
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
apt-get -y -q install oracle-java8-installer
apt-get -y -q install oracle-java7-installer
update-java-alternatives -s java-8-oracle

Điều này không được giám sát và phù hợp để đưa vào khối cung cấp Vagrant; Tôi có một ý chính với nhiều chi tiết hơn: https://gist.github.com/tinkerware/cf0c47bb69bf42c2d740

EDIT: Điều này sẽ tự động chấp nhận giấy phép của Oracle cho JDK; hãy chắc chắn rằng bạn đồng ý với điều đó trước khi chạy nó.


21
2018-01-16 01:35



Có vẻ tốt. Nhưng nó thiếu phần mà bạn có quyền truy cập root. Vẫn còn câu trả lời hay. - MadMike
Đúng; Tôi sử dụng điều này với Vagrant, thiết lập vagrant người dùng không có mật khẩu sudo. - Cagatay
Đây là Oracle Java, không OpenJDK Java là câu hỏi được đặt ra. Cũng lưu ý rằng các đường echo biểu diễn câu hỏi chấp nhận giấy phép từ trình cài đặt. - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Có, tôi đã nhận thấy câu hỏi là về OpenJDK; Tôi đặc biệt nói rằng phương pháp của tôi là để cài đặt Oracle Java. Bạn có thể tranh luận rằng điều này không liên quan, nhưng tôi nghĩ rằng có giá trị trong việc ghi nhận một thay thế mà vẫn cho bạn một thời gian chạy có thể chạy Java 7/8 trên 14.04 LTS. "Vượt qua" câu hỏi chấp nhận giấy phép là một lựa chọn từ thú vị; Tôi sẽ nói người ta nên đọc giấy phép Oracle trước khi chạy kịch bản, mà tự động chấp nhận trong quá trình cài đặt. - Cagatay
Cảm ơn @Cagatay !! câu trả lời này rất hữu ích cho tôi, tôi đang tìm kiếm cài đặt Java 8 bằng Vagrant. - Sotsir


Vào năm 2017-08-08 tôi thấy rằng câu hỏi này và câu trả lời của nó đã trở thành một chút áp đảo để tìm hiểu vấn đề, vì vậy tôi đã tóm tắt những phát hiện trong câu trả lời này.

Câu trả lời rất ngắn gọn là OpenJDK 8 tính đến 2017-08-08 không chính thức có sẵn cho Ubuntu 14.04.

Tuy nhiên có nhiều tùy chọn có sẵn:

  • Nâng cấp lên phiên bản Ubuntu mới hơn. OpenJDK 8 có sẵn từ 14.10 trở đi. (OpenJDK 9 từ 16.04 LTS trở đi, OpenJDK 11 từ 18.04 LTS trở đi)
  • Tải xuống và cài đặt Oracle Java (không phải OpenJDK) từ http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html thủ công như một tập tin tar.gz mà chỉ cần được giải nén và có giấy phép được chấp nhận trước khi bin thư mục có thể được thêm vào $PATH biến. Bạn cũng có thể chọn sử dụng PPA của bên thứ ba. Lưu ý rằng Oracle Java dường như chỉ dành cho khách hàng trả tiền trong tương lai gần (khoảng Java 11).
  • Tải xuống OpenJDK 8 bằng PPA của bên thứ ba.
  • Tải xuống bản dựng có chứng nhận Azul của OpenJDK 8 từ http://www.azul.com/downloads/zulu/zulu-linux/ (DEB)
  • Biên dịch nguồn và tự cài đặt nó.

Xem các câu trả lời khác để biết chi tiết.

Lưu ý rằng Lưu trữ gói cá nhân (PPA) thường được thực hiện bởi các cá nhân trên cơ sở tự nguyện. Nội dung có thể lỗi thời hoặc không được cảnh báo.

Cá nhân tôi khuyên bạn nên nâng cấp Ubuntu lên 18.04 LTS, hoặc nếu không thể tải xuống bản dựng Azul.


Lưu ý: Nếu bạn vẫn cần OpenJDK 8 quay lại 14.04, hãy bỏ phiếu cho lỗi này bằng cách đăng nhập và nhấp vào "Có ảnh hưởng đến bạn" ở trên cùng hay không: https://bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1368094


11
2017-08-08 15:23





chú thích Kể từ ngày 22 tháng 4 năm 2016, các gói cho Vivid đã bị xóa, than ôi. Mục tin tức trong gói.ubuntu.com: "Phản chiếu phát hành xenial, thêm yakkety, xóa sống động". Cách giải quyết của câu trả lời này là thông minh nhưng không còn áp dụng được trong tình huống hiện tại. Kể từ ngày 6 tháng 1 năm 2017, không có backport cho java 8 trên các gói đáng tin cậy.ubuntu.com/trusty-backports/java. Vui lòng chỉnh sửa khi áp dụng thay đổi.


Xem câu trả lời từ trang web chính thức của Android

https://source.android.com/source/initializing.html 

Không có sẵn các gói OpenJDK 8 được hỗ trợ cho Ubuntu 14.04. Các gói Ubuntu 15.04 OpenJDK 8 đã được sử dụng thành công với Ubuntu 14.04. Các phiên bản gói mới hơn (ví dụ: các phiên bản cho 15.10, 16.04) đã được tìm thấy không hoạt động trên 14.04 bằng cách sử dụng các hướng dẫn bên dưới.

Tải xuống các gói .deb cho kiến ​​trúc của bạn từ http://packages.ubuntu.com/vivid/openjdk-8-jdk:
    openjdk-8-jre-headless
openjdk-8-jre
    openjdk-8-jdk

Hãy nhớ rằng, bạn có thể lấy kiến ​​trúc cho máy của mình bằng:

$ uname -m    

x86_64 đại diện cho kiến ​​trúc hạt nhân Linux 64 bit (amd64) và i386 / i486 / i586 / i686 đại diện cho hệ thống 32-bit (i386).

Tùy chọn, xác nhận tổng kiểm tra các tệp đã tải xuống bằng cách sử dụng thông tin được tìm thấy trên http://packages.ubuntu.com/vivid/openjdk-8-jdk.

Ví dụ với công cụ sha256sum:

$ sha256sum {package file}    

Cài đặt các gói:

$ sudo apt-get update    

Chạy dpkg cho từng tệp .deb bạn đã tải xuống. Nó có thể tạo ra lỗi do thiếu phụ thuộc:

$ sudo dpkg -i {downloaded.deb file}    

Để khắc phục các phụ thuộc bị thiếu:

$ sudo apt-get -f install    

5
2018-02-25 00:53





Tôi vừa bầu đây và bây giờ chúng tôi là 733 người mà chúng tôi quan tâm đến việc quay lại openjdk-8 thành ubuntu-14.04.

tôi đã tìm thấy kho lưu trữ PPA này là khá uptodate

 và hy vọng hứa hẹn !?

và nó làm việc cho tôi. Tôi đã cài đặt thành công openjdk-8-jdk trên ubuntu-14.04 bằng các lệnh sau:

sudo add-apt-repository ppa:jonathonf/openjdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk 

và đây là của tôi java -version đầu ra:

openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~14.04.york0-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

và đây là của tôi uname -a đầu ra:

Linux mars1 4.4.0-75-generic #96~14.04.1-Ubuntu SMP Thu Apr 20 11:06:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

và đây là của tôi lsb_release -a đầu ra:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty

Nhà cung cấp dịch vụ lưu trữ-máy chủ ảo của tôi đang nói với tôi rằng họ chỉ cung cấp hỗ trợ cho Ubuntu-14.04 và tôi đoán họ muốn tiếp tục như thế này cho đến năm 2019! vì vậy xin vui lòng cho tôi biết nếu bạn biết bất kỳ cách nào tốt hơn để có openjdk-8 trên ubuntu-14.04?

Cảm ơn!


4
2018-05-09 20:09



Tôi sẽ khuyên bạn nên sử dụng Azul Zulu. azul.com/downloads/zulu - Thorbjørn Ravn Andersen
Tôi cũng đã phải chạy những điều sau đây để làm cho nó hoạt động: sudo update-java-alternatives --jre --set java-1.8.0-openjdk-amd64 và sudo update-java-alternatives --jre-headless --set java-1.8.0-openjdk-amd64 - champost


Trình quản lý gói Nix cũng duy trì các gói nhị phân của OpenJDK 8 cho Ubuntu, có nghĩa là bạn có thể nhận được một trình biên dịch Java 8 hoạt động trong chưa đầy năm phút bắt đầu hoàn thành (với kết nối internet nhanh).

Các bước là:

  1. Cài đặt trình quản lý gói Nix (https://www.domenkozar.com/2014/01/02/getting-started-with-nix-package-manager/): $ bash <(curl https://nixos.org/nix/install)

  2. Chạy shell một lớp Nix cho bạn biết ở phần cuối của tiến trình cài đặt: $ . ~/.nix-profile/etc/profile.d/nix.sh

  3. Cài đặt gói OpenJDK Nix: $ nix-env -i openjdk

  4. Kiểm tra javac: $ javac -version

Đó là nó. Oh, và bạn sẽ muốn chắc chắn để đặt một lót từ bước 2 trong của bạn ~/.bashrc. Điều đó sẽ yêu cầu Nix liên kết các gói đã cài đặt của bạn đúng cách (vì nó giữ các tệp thực sự trong các thư mục không chuẩn).


2
2017-10-10 03:27



Ngoài sự tò mò - tại sao bạn lại muốn một người quản lý gói bổ sung ngoài apt-get? - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen - lý do cụ thể là để nhanh chóng có được OpenJDK 8 với sự đau đớn tối thiểu, và lý do chung là Nix là một cải tiến mang tính cách mạng trên apt-get và các trình quản lý gói cũ. - Yawar
Tôi yêu cầu trong trường hợp chung - không dành riêng cho OpenJDK. Phải có những lý do rất nặng nề để giới thiệu một người quản lý gói mới lớn hơn không sử dụng hệ sinh thái hiện có mà tôi gặp khó khăn khi nhìn thấy. - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen - có những lý do rất tốt để giới thiệu Nix trong trường hợp chung. Như tôi đã đề cập, đó là một cải tiến mang tính cách mạng. Trên thang điểm của git trên svn. Kiểm tra infoq.com/articles/configuration-management-with-nix để biết thêm. - Yawar


Tôi nhận được OpenJDK 8 từ kho Debian chính thức, thay vì một số PPA ngẫu nhiên. Đây là cách tôi đã làm nó:

sudo apt-get install debian-keyring debian-archive-keyring

Chế tạo /etc/apt/sources.list.d/debian-jessie-backports.list:

deb http://<httpredir>.debian.org/debian/ jessie-backports main

nơi bạn thay đổi <httpredir> với tiền tố cho một tấm gương gần (xem https://www.debian.org/mirror/list)

Chế tạo /etc/apt/preferences.d/debian-jessie-backports:

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

Sau đó, cuối cùng thực hiện cài đặt:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

2
2017-08-10 08:22



Câu trả lời này không hiệu quả với tôi. openjdk-8-jdk muốn openjdk-8-jre điều đó muốn libjpeg62-turbo. Theo apt điều này có nghĩa là "không thể cài đặt" hoặc tiết kiệm hơn "không có sẵn, nhưng được giới thiệu bởi một gói khác. Điều này có nghĩa là gói bị thiếu, đã lỗi thời hoặc chỉ có sẵn từ một nguồn khác" - do đó không phải từ kho tôi có. Cuộc săn đuổi trở nên quá rộng để khôn ngoan - XavierStuvw


Nó thực sự cũng dễ dàng để xây dựng Java 8 mình trực tiếp từ các nguồn ... Âm thanh đáng sợ? Nó thực sự là đáng ngạc nhiên dễ dàng, và nghiêm túc nghĩa đen mất khoảng 15 phút, sử dụng https://github.com/hgomez/obuildfactory/, như tôi đã mô tả trên http://blog2.vorburger.ch/2014/06/build-your-own-jdk-at-home.html


1
2017-11-24 21:54



Xây dựng là một điều. Còn về TCK thì sao? - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Tôi không có ý tưởng. Đối với một cá nhân người dùng cuối, tự xây dựng đã là IMHO hữu ích. Để thực sự chuẩn bị một gói thử nghiệm kỹ lưỡng, có lẽ đó là một câu chuyện khác ... Tôi e rằng tôi không biết gì hơn bạn. Tôi chỉ nhìn quanh và tìm thấy openjdk.java.net/groups/conformance/JckAccess, bạn đã thấy điều đó chưa? - vorburger