Dostávám OpenJDK 8 z oficiálních repozitářů Debianu, spíše než nějaký náhodný PPA nebo nesvobodný Oracle binární soubor. Udělal jsem to takto:
sudo apt-get install debian-keyring debian-archive-keyring
Vytvořte /etc/apt/sources.list.d/debian-jessie-backports.list
:
deb http://httpredir.debian.org/debian/ jessie-backports main
Udělejte /etc/apt/preferences.d/debian-jessie-backports
:
Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200
Nakonec proveďte instalaci:
sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk
to by mělo fungovat
Jak můžete vidět, mám nainstalovanou pouze javu 1.7 (na počítači Ubuntu 14.04).
update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
Nainstaloval jsem Java 8,
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Poté mám nyní Java 7 a 8,
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
BONUS PŘIDÁN (jak přepínat mezi různými verzemi)
- spusťte následující příkaz z terminálu:
sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode * 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 manual mode Press enter to keep the current choice[*], or type selection number:
Jak vidíte, používám open jdk 8. Chcete-li přepnout na jdk 7, stiskněte 1
a stiskněte Enter klíč. Udělejte totéž pro javac
stejně jako sudo update-alternatives --config javac
.
Zkontrolujte verze a potvrďte změnu:java -version
a javac -version
.
AKTUALIZACE :instalace bez oprávnění root níže
Doporučuji vám neinstalovat balíčky ručně na systém ubuntu, pokud již existuje (polooficiální) úložiště schopné vyřešit váš problém. Dále používejte pro vývoj Oracle JDK, abyste se vyhnuli (velmi sporadickým) problémům s kompatibilitou (zkoušel jsem to před mnoha lety, teď je to určitě lepší).
Přidejte soubor webupd8 repo do vašeho systému:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Nainstalujte si preferovanou verzi jdk (k dispozici jsou verze od java-6 po java-9):
sudo apt-get install oracle-java8-installer
Můžete také nainstalovat více verzí jdk, smíchat verze openjdk a oracle. Pak můžete použít příkaz update-java-alternatives pro přepínání mezi nainstalovanou verzí:
# list available jdk
update-java-alternatives --list
# use jdk7
sudo update-java-alternatives --set java-7-oracle
# use jdk8
sudo update-java-alternatives --set java-8-oracle
Požadavky
Pokud získáte add-apt-repository: command not found
ujistěte se, že máte software-properties-common
nainstalováno:
sudo apt-get install software-properties-common
Pokud používáte starší verzi Ubuntu:
sudo apt-get install python-software-properties
Instalace JDK bez oprávnění root
Pokud na cílovém počítači nemáte administrátorská práva, nejjednodušší je použít sdkman
k instalaci openjdk s certifikací Zulu:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java
POZNÁMKA :sdkman umožňuje nainstalovat také oficiální Oracle JDK, i když to není výchozí možnost. Zobrazit dostupné verze pomocí:
sdk ls java
Nainstalujte vybranou verzi pomocí:
sdk install java <version>
Například:
sdk install java 9.0.1-oracle
Slovník příkazů
-
sudo
<command> [command_arguments]
:vykoná příkaz s oprávněním superuživatele. -
add-apt-repository
<PPA_id>
:Ubuntu (stejně jako všechny deriváty Debianu a obecně každá distribuce Linuxu) má hlavní úložiště balíčků, které se starají o věci, jako jsou závislosti balíčků a aktualizace. V Ubuntu je možné rozšířit hlavní úložiště pomocí PPA (Personal Package Archive), který obvykle obsahuje balíčky nedostupné v systému (stejně jako oracle jdk) nebo aktualizované verze dostupných (příklad:LibreOffice 5 v LTS je dostupný pouze prostřednictvím tohoto PPA). -
apt-get
[install|update|upgrade|purge|...]
:je to "ten" obslužný program příkazového řádku používaný k manipulaci se stavem každého úložiště v systému (instalaci/aktualizaci/aktualizaci lze považovat za změnu aktuálního stavu úložiště).
V našem případě :pomocí příkazu sudo add-apt-repository ppa:webupd8team/java
informujeme systém, že příští aktualizace úložiště musí získat informace o balíčcích také z úložiště webupd8.
S sudo apt-get update
ve skutečnosti aktualizujeme systémové úložiště (všechny tyto operace vyžadují oprávnění superuživatele, proto přidáme sudo k příkazům).
sudo apt-get install oracle-java8-installer
-
update-java-alternatives (konkrétní java verze alternativ aktualizace ):v Ubuntu několik balíčků poskytuje stejnou funkcionalitu (procházení internetu, kompilování e-mailů, úprava textového souboru nebo poskytování spustitelných souborů java/javac...). Chcete-li systému umožnit výběr uživatelského oblíbeného nástroje pro konkrétní úkol, mechanismus využívající symbolické odkazy pod
/etc/alternatives/
se používá. Zkuste aktualizovat jdk, jak je uvedeno výše (přepínejte mezi java 7 a java 8) a podívejte se, jak změnit výstup tohoto příkazu:ls -l /etc/alternatives/java*
V našem případě :sudo update-java-alternatives --set java-8-oracle
aktualizujte symbolické odkazy v /etc/alternatives, aby ukazovaly na spustitelné soubory java-8-oracle.
Doplňky:
-
muž
<command>
:začněte používat man ke čtení opravdu dobře napsané a podrobné nápovědy k (téměř) každému příkazu shellu a jeho možnostem (každý příkaz, který zmiňuji v této malé odpovědi, má manuálovou stránku, zkusteman update-java-alternatives
). -
apt-cache
search <search_key>
:dotaz na mezipaměť APT pro vyhledání balíčku souvisejícího s poskytnutým vyhledávacím klíčem (může to být název balíčku nebo nějaké slovo v popisu balíčku). -
apt-cache
show <package>
:poskytuje informace APT pro konkrétní balíček (verze balíčku, nainstalovaná nebo ne, popis).