Właśnie zainstalowałem Ubuntu i po raz pierwszy pracuję w środowisku Linux, więc wytrzymaj tutaj mój noobish.
W każdym razie pobrałem Java 8 JDK bezpośrednio z Oracle, ale rozumiem, że istnieje również OpenJDK dla Java 8. Mam dwa pytania.
Jaka jest różnica między wersją Oracle a OpenJDK. Za I przeciw?
Kiedy próbuję zdobyć OpenJDK 8, nie mogę. Wklejam polecenie terminala i otrzymuję komunikat o błędzie, mając nadzieję na radę. Ponownie, bardzo nowy w Linuksie, byłem na mojej pierwszej dystrybucji Linuksa przez mniej niż godzinę w tym momencie.
user@computer:~/Java$ sudo apt-get install openjdk-8-jdk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package openjdk-8-jdk
Każda pomoc będzie mile widziana. W międzyczasie użyję tylko pakietu Oracle. Dzięki.
Edytować:
Więc teraz mam nowy problem. Zainstalowałem OpenJDK 7, przyszedł z Maven i zainstalowałem go, zanim zdałem sobie sprawę, że dostaję ofertę dwa za jeden. Teraz mam JDK 7, Eclipse i Maven i wszystkie działają, ale utknąłem na JDK 7 zamiast 8.
Widziałem, że poniżej jest link, zamierzam to sprawdzić rano, jest 2 w nocy i jestem teraz zmęczony. Wszelkie inne rady dotyczące tego nowego wydania byłyby mile widziane, w przeciwnym razie z pewnością rano sprawdzę ten link.
Odpowiedzi:
UPDATE : instalacja bez uprawnień roota poniżej
Radzę nie instalować pakietów ręcznie w systemie ubuntu, jeśli istnieje już (półoficjalne) repozytorium, które może rozwiązać Twój problem. Ponadto używaj Oracle JDK do programowania, aby uniknąć (bardzo sporadycznych) problemów ze zgodnością (próbowałem wiele lat temu, z pewnością teraz jest lepiej).
Dodaj repozytorium webupd8 do swojego systemu:
Zainstaluj preferowaną wersję jdk (dostępne wersje od java-6 do java-9):
Możesz także zainstalować wiele wersji jdk, mieszając wersje openjdk i oracle. Następnie możesz użyć polecenia update-java-alternatives, aby przełączyć się między zainstalowaną wersją:
# 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
Wymagania
Jeśli masz
add-apt-repository: command not found
pewność, że maszsoftware-properties-common
zainstalowane:Jeśli używasz starszej wersji Ubuntu:
Instalacja JDK bez uprawnień roota
Jeśli nie masz uprawnień administratora na komputerze docelowym, najprostszym rozwiązaniem jest
sdkman
zainstalowanie certyfikowanego przez Zulu openjdk:curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java
UWAGA : sdkman pozwala na zainstalowanie również oficjalnego Oracle JDK, chociaż nie jest to opcja domyślna. Zobacz dostępne wersje z:
Zainstaluj wybraną wersję za pomocą:
Na przykład:
sdk install java 9.0.1-oracle
Słowniczek poleceń
sudo
<command> [command_arguments]
: wykonaj polecenie z uprawnieniami superużytkownika.add-apt-repository
<PPA_id>
: Ubuntu (podobnie jak wszystkie pochodne Debiana i ogólnie rzecz biorąc każda dystrybucja Linuksa) ma główne repozytorium pakietów, które obsługują takie rzeczy, jak zależności i aktualizacje pakietów. W Ubuntu istnieje możliwość rozszerzenia repozytorium głównego za pomocą PPA (Personal Package Archive), które zazwyczaj zawiera pakiety niedostępne w systemie (podobnie jak oracle jdk) lub zaktualizowane wersje dostępnych (przykład: LibreOffice 5 w LTS jest dostępny tylko przez to PPA ).apt-get
[install|update|upgrade|purge|...]
: jest to "" program obsługi pakietów w linii poleceń używany do manipulowania stanem każdego repozytorium w systemie (instalowanie / aktualizowanie / aktualizowanie może być postrzegane jako zmiana bieżącego stanu repozytorium).W naszym przypadku : poleceniem
sudo add-apt-repository ppa:webupd8team/java
informujemy system, że kolejna aktualizacja repozytorium musi pobrać informacje o pakietach również z repozytorium webupd8.W
sudo apt-get update
rzeczywistości aktualizujemy repozytorium systemowe (wszystkie te operacje wymagają uprawnień superużytkownika, więc dodajemy sudo do poleceń).sudo apt-get install oracle-java8-installer
update-java-alternatives (konkretna wersja alternatywy dla aktualizacji java ): w Ubuntu kilka pakietów zapewnia tę samą funkcjonalność (przeglądanie Internetu, kompilowanie poczty, edycja pliku tekstowego lub udostępnianie plików wykonywalnych java / javac ...). Aby system pozwala wybrać ulubione narzędzie użytkownik podane konkretne zadanie mechanizm używając dowiązania pod
/etc/alternatives/
służy. Spróbuj zaktualizować jdk, jak wskazano powyżej (przełącz między java 7 i java 8) i zobacz, jak zmienić wyjście tego polecenia:ls -l /etc/alternatives/java*
W naszym przypadku :
sudo update-java-alternatives --set java-8-oracle
zaktualizuj dowiązania symboliczne w / etc / alternatives, aby wskazywały na pliki wykonywalne java-8-oracle.Dodatki:
man
<command>
: zacznij używać man do czytania naprawdę dobrze napisanej i szczegółowej pomocy na temat (prawie) każdego polecenia powłoki i jego opcji (każde polecenie, o którym wspominam w tej małej odpowiedzi, ma stronę podręcznika, spróbujman update-java-alternatives
).apt-cache
search <search_key>
: wysyłaj zapytanie do pamięci podręcznej APT, aby wyszukać pakiet powiązany z podanym kluczem search_key (może to być nazwa pakietu lub słowo w opisie pakietu).apt-cache
show <package>
: dostarcza informacji APT dla konkretnego pakietu (wersja pakietu, zainstalowana lub nie, opis).źródło
apt-get install software-properties-common
. W konsekwencji zaktualizuję post, aby uwzględnić to wymaganie. DziękiJak widać, mam zainstalowaną tylko Javę 1.7 (na komputerze z Ubuntu 14.04).
update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
Aby zainstalować Javę 8, zrobiłem,
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk
Później mam teraz java 7 i 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
DODANO BONUS (jak przełączać się między różnymi wersjami)
Jak widać, uruchamiam open jdk 8. Aby przełączyć się na jdk 7, naciśnij
1
i naciśnij Enterklawisz. Zrób to samo dlajavac
jak dobrze,sudo update-alternatives --config javac
.Sprawdź wersje, aby potwierdzić zmianę:
java -version
ijavac -version
.źródło
Otrzymuję OpenJDK 8 z oficjalnych repozytoriów Debiana, a nie z jakiegoś losowego PPA lub niewolnego pliku binarnego Oracle. Oto jak to zrobiłem:
sudo apt-get install debian-keyring debian-archive-keyring
Marka
/etc/apt/sources.list.d/debian-jessie-backports.list
:deb http://httpredir.debian.org/debian/ jessie-backports main
Marka
/etc/apt/preferences.d/debian-jessie-backports
:Package: * Pin: release o=Debian,a=jessie-backports Pin-Priority: -200
Następnie w końcu wykonaj instalację:
sudo apt-get update sudo apt-get -t jessie-backports install openjdk-8-jdk
źródło
update-alternatives --config java ;-)
sudo apt-get update sudo apt-get install openjdk-8-jdk
to powinno działać
źródło
Miałem ten sam problem i wypróbowałem wszystkie rozwiązania na tej stronie, ale żadne z nich nie pomogło.
W końcu zadziałało dodanie
universe
repozytorium do mojej listy repozytoriów. Aby to zrobić, uruchom następujące poleceniePo uruchomieniu powyższego polecenia udało mi się uruchomić
sudo apt install openjdk-8-jre
bez problemu i pakiet został zainstalowany.
Mam nadzieję, że to komuś pomoże.
źródło
Po dodaniu
JDK
repozytorium przed instalacją warto najpierw uruchomić aktualizację, aby można było dodać repozytoriumapt update
a następnie kontynuuj instalację
sudo apt install adoptopenjdk-8-hotspot
źródło