Instaliranje Jave na Ubuntu

1. Pregled

U ovom uputstvu ćemo vam predstaviti različite metode za instaliranje JDK na Ubuntu. Zatim ćemo ukratko usporediti metode. Na kraju ćemo pokazati kako upravljati s više Java instalacija na Ubuntu sustavu.

Kao preduvjet svake metode trebamo

  • Ubuntu sustav
  • biti prijavljen kao nekorijenski korisnik s sudo povlastice

Upute opisane u nastavku testirane su na Ubuntu 18.10, 18.04 LTS, 16.04 LTS i 14.04 LTS. Za Ubuntu 14.04 LTS postoje neke razlike koje su spomenute u tekstu.

Imajte na umu da se i paketi koje možete preuzeti s OpenJDK i Oracle i paketi dostupni u spremištima redovito ažuriraju. Točni nazivi paketa vjerojatno će se promijeniti za nekoliko mjeseci, ali osnovni načini instalacije ostat će isti.

2. Instaliranje JDK 11

Ako želimo koristiti najnoviju i najbolju verziju JDK, često je put ručna instalacija. To znači preuzimanje paketa s OpenJDK-a ili Oracle stranice i postavljanje tako da se pridržava konvencija kako prikladan postavlja JDK pakete.

2.1. Ručna instalacija OpenJDK 11

Prije svega, preuzmimo katran arhiva nedavno objavljenog OpenJDK 11:

$ wget //download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz

I uspoređujemo sha256 zbroj preuzetog paketa s onim navedenim na web mjestu OpenJDK:

$ sha256sum openjdk-11_linux-x64_bin.tar.gz

Izdvojimo katran arhiva:

$ tar xzvf openjdk-11_linux-x64_bin.tar.gz

Dalje, pomaknimo jdk-11 direktorij koji smo upravo izdvojili u poddirektorij / usr / lib / jvm. The prikladan paketi opisani u sljedećem odjeljku također stavljaju svoje JDK-ove u ovaj direktorij:

$ sudo mkdir / usr / lib / jvm $ sudo mv jdk-11 / usr / lib / jvm / openjdk-11-manual-installation / 

Sada mi to želimo napravi Java i javac dostupne naredbe. Jedna od mogućnosti bila bi stvaranje im simboličkih poveznica, na primjer u / usr / bin imenik. Ali umjesto toga, instalirat ćemo alternativu za oboje. Na ovaj način, ako ikad poželimo instalirati dodatne verzije JDK, oni će lijepo igrati zajedno:

$ sudo update-alternative --install / usr / bin / java java / usr / lib / jvm / openjdk-11-manual-installation / bin / java 1 $ sudo update-alternative --install / usr / bin / javac javac / usr / lib / jvm / openjdk-11-manual-installation / bin / javac 1

Provjerimo instalaciju:

$ java -verzija

Kao što možemo vidjeti iz rezultata, zaista smo instalirali najnoviju verziju OpenJDK JRE i JVM:

openjdk verzija "11" 2018-09-25 OpenJDK Runtime Environment 18.9 (gradnja 11 + 28) OpenJDK 64-bitni poslužitelj VM 18.9 (gradnja 11 + 28, mješoviti način) 

Pogledajmo i verziju kompajlera:

$ javac -verzija
javac 11

2.2. Ručna instalacija Oracle JDK 11

Ako želimo biti sigurni da koristimo najnoviju verziju Oracle JDK, možemo slijediti sličan tijek ručne instalacije kao za OpenJDK. Da biste preuzeli katran arhiva za JDK 11 s web stranice Oracle, prvo moramo prihvatiti ugovor o licenci. Iz tog razloga, preuzimanje putem wget je malo kompliciraniji nego za OpenJDK:

$ wget -c --header "Kolačić: oraclelicense = accept-securebackup-cookie" \ //download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin .tar.gz

Gornji primjer preuzima paket za 11.0.1 Točna veza za preuzimanje mijenja se za svaku manju verziju.

Sljedeći koraci su isti kao i za OpenJDK:

$ sha256sum jdk-11.0.1_linux-x64_bin.tar.gz $ tar xzvf jdk-11.0.1_linux-x64_bin.tar.gz $ sudo mkdir / usr / lib / jvm $ sudo mv jdk-11.0.1 / usr / lib / jvm / oracle-jdk-11-manual-installation / $ sudo update-alternative --install / usr / bin / java java / usr / lib / jvm / oracle-jdk-11-manual-installation / bin / java 1 $ sudo update -alternative --install / usr / bin / javac javac / usr / lib / jvm / oracle-jdk-11-manual-installation / bin / javac 1

Provjera je također ista. Ali izlaz pokazuje da ovog puta nismo instalirali OpenJDK već Java (TM):

$ java -verzija
java verzija "11.0.1" 2018-10-16 LTS Java (TM) SE Runtime Environment 18.9 (build 11.0.1 + 13-LTS) Java HotSpot (TM) 64-bitni poslužitelj VM 18.9 (build 11.0.1 + 13- LTS, mješoviti način)

A za kompajler:

$ javac -verzija
javac 11.0.1

2.3. Instaliranje Oracle JDK 11 s PPA-a

Trenutno je Oracle JDK 11 također dostupan u PPA-u (osobna arhiva paketa). Ova instalacija uključuje 2 koraka: dodavanje spremišta u naš sustav i instaliranje paketa iz spremišta putem prikladan:

$ sudo add-apt-repozitorij ppa: linuxuprising / java $ sudo apt update $ sudo apt install oracle-java11-installer

Koraci provjere trebali bi pokazati isti rezultat kao i nakon ručne instalacije u odjeljku 2.2.1:

$ java -verzija
java verzija "11.0.1" 2018-10-16 LTS Java (TM) SE Runtime Environment 18.9 (build 11.0.1 + 13-LTS) Java HotSpot (TM) 64-bitni poslužitelj VM 18.9 (build 11.0.1 + 13- LTS, mješoviti način)

A za kompajler:

$ javac -verzija
javac 11.0.1

Na Ubuntuu 14.04 LTS add-apt-repozitorij naredba nije dostupna prema zadanim postavkama. Da bismo dodali spremište, prvo moramo instalirati svojstva softvera-zajednička paket.

$ sudo apt update $ sudo apt instalirajte svojstva softvera-zajednička

Poslije možemo nastaviti s add-apt-repozitorij, apt ažuriranje i apt instalirati kao što je gore prikazano.

3. Instaliranje JDK 8

3.1. Instaliranje OpenJDK 8 na Ubuntu 16.04 LTS i novije

JDK 8 je LTS verzija koja postoji već neko vrijeme. Iz tog razloga možemo naći ažuriranu verziju OpenJDK 8 u spremištu “Main” na većini podržanih verzija Ubuntua. Naravno, možemo se uputiti i na web stranicu OpenJDK, tamo ugrabiti paket i instalirati ga na isti način kao što smo vidjeli u prethodnom odjeljku.

Ali pomoću prikladan alata i "Glavno" spremište pruža neke prednosti. Repozitorij "Glavni" dostupan je prema zadanim postavkama na svim Ubuntu sustavima. Podržava ga Canonical - ista ona tvrtka koja održava sam Ubuntu.

Instalirajmo OpenJDK 8 iz spremišta “Main” pomoću prikladan:

$ sudo apt ažuriranje $ sudo apt instaliraj openjdk-8-jdk

Sada, provjerimo instalaciju:

$ java -verzija

Rezultat bi trebao navesti Runtime Environment i JVM:

openjdk verzija "1.8.0_181" OpenJDK Runtime Environment (gradnja 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13) OpenJDK 64-bitni poslužitelj VM (gradnja 25.181-b13, mješoviti način)

Provjerimo je li javac dostupna je i izvršna datoteka:

$ javac -verzija

Sada bismo trebali vidjeti isti broj verzije kao što je prikazano gore:

javac 1.8.0_181

3.2. Instaliranje OpenJDK 8 na Ubuntu 14.04 LTS

Na Ubuntu 14.04 LTS, OpenJDK paketi nisu dostupni u spremištu “Main”, pa ćemo ih instalirati iz openjdk-r PPA. Kao što smo vidjeli u odjeljku 2.3 gore, add-apt-repozitorij naredba nije dostupna prema zadanim postavkama. Trebamo svojstva softvera-zajednička paket za to:

$ sudo apt update $ sudo apt install software-properties-common $ sudo add-apt-repozitorij ppa: openjdk-r / ppa $ sudo apt update $ sudo apt install openjdk-8-jdk

3.3. Instaliranje Oracle JDK 8 s PPA-a

Spremište "Main" ne sadrži vlasnički softver. Ako želimo instalirati Oracle Java sa prikladan, morat ćemo upotrijebiti paket iz PPA-a. Već smo vidjeli kako instalirati Oracle JDK 11 s računala linuxuprising PPA. Za Javu 8 pakete možemo pronaći u webupd8team PPA.

Prvo, moramo dodati PPA prikladan spremište u naš sustav:

$ sudo add-apt-repozitorij ppa: webupd8team / java

Tada možemo instalirati paket na uobičajeni način:

$ sudo apt update $ sudo apt install oracle-java8-installer

Tijekom instalacije moramo prihvatiti Oracleov ugovor o licenci. Provjerimo instalaciju:

$ java -verzija

Izlaz prikazuje Java (TM) JRE i JVM:

java verzija "1.8.0_181" Java (TM) SE Runtime Environment (gradnja 1.8.0_181-b13) Java HotSpot (TM) 64-bitni poslužitelj VM (gradnja 25.181-b13, mješoviti način)

Također možemo provjeriti je li kompajler instaliran:

$ javac -verzija
javac 1.8.0_181

4. Instaliranje JDK 10

Verzije Java 10 i Java 9 više nisu podržane. Možete ih instalirati ručno, slijedeći slične korake kao u odjeljku 2. Pakete možete preuzeti iz:

  • //jdk.java.net/archive/
  • //www.oracle.com/technetwork/java/javase/archive-139210.html

Obje web stranice sadrže isto upozorenje:

Ove starije verzije JDK pružaju se programerima za rješavanje problema u starijim sustavima. Nisu ažurirani najnovijim sigurnosnim zakrpama i ne preporučuju se za proizvodnju.

4.1. Ručna instalacija OpenJDK 10

Pogledajmo kako instalirati OpenJDK 10.0.1:

$ wget //download.java.net/java/GA/jdk10/10.0.1/fb4372174a714e6b8c52526dc134031e/10/openjdk-10.0.1_linux-x64_bin.tar.gz $ sha256sum openjdk-10.0.1_linux-x64_bin.tar.gz $ tar xzvf openjdk-10.0.1_linux-x64_bin.tar.gz $ sudo mkdir / usr / lib / jvm $ sudo mv jdk-10.0.1 / usr / lib / jvm / openjdk-10-manual-installation / $ sudo update-alternative - -install / usr / bin / java java / usr / lib / jvm / openjdk-10-manual-installation / bin / java 1 $ sudo update-alternative --install / usr / bin / javac javac / usr / lib / jvm / openjdk-10-priručnik-instalacija / bin / javac 1 $ java -verzija $ javac -verzija

4.2. Ručna instalacija Oracle JDK 10

Kao što smo vidjeli u odjeljku 2.2., Da biste preuzeli paket s web mjesta Oracle, prvo moramo prihvatiti ugovor o licenci. Suprotno podržanim verzijama, starije Oracle JDK-ove ne možemo preuzeti putem wget i kolačić. Moramo krenuti na //www.oracle.com/technetwork/java/javase/downloads/java-archive-javase10-4425482.html i preuzeti katran.gz datoteka. Nakon toga slijedimo poznate korake:

$ sha256sum jdk-10.0.2_linux-x64_bin.tar.gz $ tar xzvf jdk-10.0.2_linux-x64_bin.tar.gz $ sudo mkdir / usr / lib / jvm $ sudo mv jdk-10.0.2 / usr / lib / jvm / oracle-jdk-10-manual-installation / $ sudo update-alternative --install / usr / bin / java java / usr / lib / jvm / oracle-jdk-10-manual-installation / bin / java 1 $ sudo update -alternative --install / usr / bin / javac javac / usr / lib / jvm / oracle-jdk-10-manual-installation / bin / javac 1 $ java -version $ javac -version

5. Instaliranje JDK 9

5.1. Ručna instalacija OpenJDK 9

Baš kao što smo vidjeli gore kod OpenJDK 10.0.1, i paket OpenJDK 9 preuzimamo putem wget i postavite ga prema konvencijama:

$ wget //download.java.net/java/GA/jdk9/9.0.4/binaries/openjdk-9.0.4_linux-x64_bin.tar.gz $ sha256sum openjdk-9.0.4_linux-x64_bin.tar.gz $ tar xzvf openjdk -9.0.4_linux-x64_bin.tar.gz $ sudo mkdir / usr / lib / jvm $ sudo mv jdk-9.0.4 / usr / lib / jvm / openjdk-9-manual-installation / $ sudo update-alternative --install / usr / bin / java java / usr / lib / jvm / openjdk-9-manual-installation / bin / java 1 $ sudo update-alternative --install / usr / bin / javac javac / usr / lib / jvm / openjdk- 9-ručna-instalacija / bin / javac 1 $ java -verzija $ javac -verzija

5.2. Ručna instalacija Oracle JDK 9

Još jednom, koristimo istu metodu kao za JDK 10. Moramo krenuti na //www.oracle.com/technetwork/java/javase/downloads/java-archive-javase9-3934878.html i preuzeti katran.gz datoteka. Nakon toga slijedimo poznate korake:

$ sha256sum jdk-9.0.4_linux-x64_bin.tar.gz $ tar xzvf jdk-9.0.4_linux-x64_bin.tar.gz $ sudo mkdir / usr / lib / jvm $ sudo mv jdk-9.0.4 / usr / lib / jvm / oracle-jdk-9-manual-installation / $ sudo update-alternative --install / usr / bin / java java / usr / lib / jvm / oracle-jdk-9-manual-installation / bin / java 1 $ sudo update -alternative --install / usr / bin / javac javac / usr / lib / jvm / oracle-jdk-9-manual-installation / bin / javac 1 $ java -version $ javac -version

6. Usporedba

Vidjeli smo tri različita načina instaliranja JDK na Ubuntu. Imajmo brz pregled svakog od njih, ukazujući na prednosti i nedostatke.

6.1. “Glavno” spremište

Ovo je "Ubuntu native" način instalacije. Velika prednost je što pakete ažuriramo putem "uobičajenog prikladan tijek rada “s prikladno ažuriranje i prikladna nadogradnja.

Nadalje, "Glavno" spremište održava Canonical, koji pruža relativno brza (ako ne i neposredna) ažuriranja. Na primjer, verzije 10.0.1 i 10.0.2 OpenJDK sinkronizirane su u roku od mjesec dana od izdavanja.

6.2. PPA

PPA su mala spremišta održava pojedinačni programer ili grupa. To također znači da učestalost ažuriranja ovisi o održavaču.

Razmatraju se paketi iz ugovornih ugovornih strana rizičniji od paketa u spremištu "Main". Prvo, PPA moramo izričito dodati na popis spremišta sustava, ukazujući da mu vjerujemo. Nakon toga možemo upravljati paketima putem uobičajenog prikladan alata (prikladno ažuriranje i prikladna nadogradnja).

6.3. Ručna instalacija

Paket preuzimamo izravno s OpenJDK ili Oracle web mjesta. Iako ova metoda nudi veliku fleksibilnost, ažuriranja su naša odgovornost. Ako želimo imati najnoviji i najveći JDK, to je put kojim treba ići.

7. Istraživanje drugih verzija JDK-ova

Primjeri u odjeljcima 2 i 3 odražavaju trenutno stanje na Ubuntu 18.04 LTS. Imajte na umu da se JDK i odgovarajući paketi redovito ažuriraju. Stoga je korisno znati kako istražite naše trenutne mogućnosti.

U ovom ćemo se dijelu usredotočiti na istraživanje OpenJDK paketa u spremištu "Main". Ako smo već dodali PPA s add-apt-repozitorij, možemo ga istražiti na sličan način s prikladan popis i prikladna predstava.

Da bismo otkrili koji su PPA-ovi dostupni, možemo otići na //launchpad.net/. Ako ne pronađemo ono što tražimo u "Glavnom" spremištu i u PPA-ima, morat ćemo se vratiti ručnoj instalaciji.

Ako bismo željeli koristiti nepodržanu verziju, čak i to može biti teško. Od pisanja ovog članka nismo pronašli nijedan paket za Javu 9 ili Javu 10 na web mjestima OpenJDK i Oracle.

Pogledajmo koji još JDK paketi postoje u spremištu “Main”:

$ apt popis openjdk * jdk

Na Ubuntu 18.04 LTS možemo birati između dvije trenutne LTS Java verzije:

Popis ... Gotovo openjdk-11-jdk / bionic-updates, bionic-security, sada 10.0.2 + 13-1ubuntu0.18.04.2 amd64 [instaliran, automatski] openjdk-8-jdk / bionic-updates, bionic-security 8u181-b13-0ubuntu0.18.04.1 amd64

Također je vrijedno napomenuti da iako se paket zove openjdk-11-jdk, od ovog pisanja, zapravo instalira verziju 10.0.2. To će se vjerojatno uskoro promijeniti. Vidimo da ako pregledamo paket:

$ apt emisija openjdk-11-jdk

Pogledajmo odjeljak rezultata "Ovisi". Imajte na umu da se ti paketi (npr. JRE) također instaliraju zajedno openjdk-11-jdk:

Ovisi: openjdk-11-jre (= 10.0.2 + 13-1ubuntu0.18.04.2), openjdk-11-jdk-bez glave (= 10.0.2 + 13-1ubuntu0.18.04.2), libc6 (> = 2.2. 5)

Istražimo koje još pakete imamo na raspolaganju osim zadanog jdk paketa:

$ apt popis openjdk-11 *
Popis ... Gotovo openjdk-11-dbg / bionic-updates, bionic-security 10.0.2 + 13-1ubuntu0.18.04.2 amd64 openjdk-11-demo / bionic-updates, bionic-security 10.0.2 + 13-1ubuntu0 .18.04.2 amd64 openjdk-11-doc / bionic-updates, bionic-updates, bionic-security, bionic-security 10.0.2 + 13-1ubuntu0.18.04.2 sve openjdk-11-jdk / bionic-updates, bionic- sigurnost 10.0.2 + 13-1ubuntu0.18.04.2 amd64 openjdk-11-jdk-headless / bionic-updates, bionic-security 10.0.2 + 13-1ubuntu0.18.04.2 amd64 openjdk-11-jre / bionic-updates, bionic-security, sada 10.0.2 + 13-1ubuntu0.18.04.2 amd64 [instaliran, automatski] openjdk-11-jre-headless / bionic-updates, bionic-security, sada 10.0.2 + 13-1ubuntu0.18.04.2 amd64 [instaliran, automatski] openjdk-11-jre-zero / bionic-updates, bionic-security 10.0.2 + 13-1ubuntu0.18.04.2 amd64 openjdk-11-source / bionic-updates, bionic-updates, bionic-security , bionic-security 10.0.2 + 13-1ubuntu0.18.04.2 sve

Neki od ovih paketa mogu nam biti korisni. Na primjer, openjdk-11-izvor sadrži izvorne datoteke za klase Java core API-ja, dok openjdk-11-dbg sadrži simbole za otklanjanje pogrešaka.

Osim openjdk- * obitelj, tu je zadani-jdk paket koji vrijedi istražiti:

$ apt show default-jdk

Na kraju rezultata, opis kaže:

"Ovaj paket ovisnosti upućuje na Java runtime ili Java kompatibilni razvojni komplet preporučen za ovu arhitekturu ..."

U slučaju Ubuntu 18.04 LTS, to je paket openjdk-11-jdk Trenutno.

8. Pregled: Java verzije i paketi

Sada, pogledajmo kako bi se različite verzije Jave mogle instalirati na Ubuntu 18.04 LTS od ovog pisanja:

VerzijaOpenJDKOracle Java
11ručna instalacijaručna instalacija

oracle-java11-instalater u linuxuprising PPA

10ručna instalacija - nije podržanoručna instalacija - nije podržano
9ručna instalacija - nije podržanoručna instalacija - nije podržano
8openjdk-8-jdk u "Glavnom" spremištuoracle-java8-instalater u webupd8team PPA

9. Višestruke inačice Java na Ubuntu sustavu

Standardni način upravljanja više verzija istog softvera na Ubuntuu je putem sustava Debian Alternatives System. Većinu vremena stvaramo, održavamo i prikazujemo alternative putem alternative za ažuriranje program.

Kada prikladan instalira JDK paket, on automatski dodaje unose za alternative. U slučaju ručne instalacije, vidjeli smo kako dodati alternative za Java i javac odnosno.

Pogledajmo naše alternative:

$ update-alternative --display java

Na našem testnom sustavu, gdje smo instalirali dvije različite verzije OpenJDK, u izlazu su navedene obje alternative sa pripadajućim prioritetima:

java - veza automatskog načina najbolja verzija je / usr / lib / jvm / java-11-openjdk-amd64 / bin / java link trenutno upućuje na / usr / lib / jvm / java-11-openjdk-amd64 / bin / java link java je / usr / bin / java slave java.1.gz je /usr/share/man/man1/java.1.gz / usr / lib / jvm / java-11-openjdk-amd64 / bin / java - prioritet 1101 slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz / usr / lib / jvm / java-8-openjdk-amd64 / jre / bin / java - prioritet 1081 slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

Sad kad smo vidjeli svoje alternative, također se možemo prebacivati ​​između njih:

$ sudo update-alternative --config java

Uz to, dobivamo interaktivni izlaz, gdje se putem tipkovnice možemo prebacivati ​​između alternativa:

Postoje 2 izbora za alternativnu javu (pružanje / usr / bin / java). Status prioriteta puta odabira ---------------------------------------------- -------------- * 0 / usr / lib / jvm / java-11-openjdk-amd64 / bin / java 1101 automatski način rada 1 / usr / lib / jvm / java-11-openjdk -amd64 / bin / java 1101 ručni način rada 2 / usr / lib / jvm / java-8-openjdk-amd64 / jre / bin / java 1081 ručni način rada Pritisnite da zadržite trenutni izbor [*] ili broj odabira vrste:

Ako radimo na više aplikacija napisanih u različitim verzijama Jave, velika je vjerojatnost da će nam trebati i različite verzije drugog softvera (npr. Maven, neki aplikacijski poslužitelj). U tom slučaju, možda bismo trebali razmotriti upotrebu većih apstrakcija poput Dockerovih spremnika.

10. Zaključak

Da rezimiramo, u ovom smo članku vidjeli primjere instaliranja JDK-a iz "Glavnog" spremišta, iz PPA-a i ručno. Ukratko smo usporedili ove tri metode instalacije.

I na kraju, vidjeli smo kako upravljati s više Java instalacija na Ubuntu sustavu s alternative za ažuriranje.

Kao sljedeći korak, moglo bi biti korisno postaviti JAVA_KUĆA varijabla okoline.