it-swarm.com.de

Ubuntu: OpenJDK 8 - Paket kann nicht gefunden werden

Ich habe gerade Ubuntu installiert und arbeite zum ersten Mal in einer Linux-Umgebung.

Wie auch immer, ich habe das Java 8 JDK direkt von Oracle heruntergeladen, aber ich verstehe, dass es auch ein OpenJDK für Java 8 gibt. Ich habe zwei Fragen.

  1. Was ist der Unterschied zwischen der Oracle-Version und OpenJDK. Für und Wider?

  2. Wenn ich versuche, OpenJDK 8 zu bekommen, kann ich nicht. Ich füge den Terminalbefehl und die hier angezeigte Fehlermeldung ein und hoffe auf Ratschläge. Wieder sehr neu in Linux, war ich an diesem Punkt weniger als eine Stunde in meiner ersten Linux-Distribution.

    [email protected]:~/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
    

Jede Hilfe wäre dankbar. In der Zwischenzeit verwende ich nur das Oracle-Paket. Vielen Dank.

Bearbeiten:

Also, jetzt habe ich ein neues Problem. Ich habe OpenJDK 7 installiert, es wurde mit Maven geliefert und erst installiert, als ich merkte, dass ich einen Zwei-für-Eins-Deal bekam. Jetzt habe ich JDK 7 und Eclipse und Maven, und sie arbeiten alle, aber ich bin eher auf JDK 7 als auf 8 fixiert.

Ich habe gesehen, dass es unten einen Link gibt, ich habe vor, ihn am Morgen zu überprüfen, es ist 2 Uhr morgens und ich bin gerade müde. Jeder andere Rat für diese neue Ausgabe wäre dankbar, sonst werde ich diesen Link als erstes am Morgen auf jeden Fall prüfen.

74
user2223059

[~ # ~] Update [~ # ~] : Installation ohne Root-Rechte weiter unten


Ich rate Ihnen, Pakete nicht manuell auf dem Ubuntu-System zu installieren, wenn es bereits ein (semi-offizielles) Repository gibt, das Ihr Problem lösen kann. Verwenden Sie Oracle JDK für die Entwicklung, um (sehr sporadische) Kompatibilitätsprobleme zu vermeiden (ich habe es vor vielen Jahren versucht, es ist jetzt sicherlich besser).

Fügen Sie das webupd8 Repo zu Ihrem System hinzu:

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update

Installieren Sie Ihre bevorzugte Version von jdk (Versionen von Java-6 bis Java-9 verfügbar):

Sudo apt-get install Oracle-Java8-installer

Sie können auch mehrere Versionen von jdk installieren und die Versionen von openjdk und Oracle mischen. Dann können Sie mit dem Befehl update-Java-alternatives zwischen den installierten Versionen wechseln:

# 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

Anforderungen

Wenn Sie add-apt-repository: command not found Erhalten, stellen Sie sicher, dass software-properties-common Installiert ist:

Sudo apt-get install software-properties-common

Wenn Sie eine ältere Ubuntu-Version verwenden:

Sudo apt-get install python-software-properties

JDK-Installation ohne Root-Rechte

Wenn Sie auf Ihrem Zielcomputer keine Administratorrechte haben, können Sie am einfachsten sdkman verwenden, um das zulu-zertifizierte openjdk zu installieren:

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install Java

[~ # ~] note [~ # ~]: Mit sdkman kann auch das offizielle Oracle-JDK installiert werden, obwohl dies nicht die Standardoption ist. Verfügbare Versionen anzeigen mit:

sdk ls Java

Installiere die gewählte Version mit:

sdk install Java <version>

Zum Beispiel:

sdk install Java 9.0.1-Oracle

Glossar der Befehle

  • Sudo <command> [command_arguments]: Führen Sie einen Befehl mit dem Superuser-Privileg aus.

  • add-apt-repository <PPA_id>: Ubuntu (genau wie alle Debian-Derivate und generell jede Linux-Distribution) hat ein Hauptrepository von Paketen die Dinge wie Paketabhängigkeiten und Aktualisierungen handhaben. In Ubuntu ist es möglich, das Haupt-Repository mit einem PPA (Personal Package Archive) zu erweitern, das normalerweise nicht im System verfügbare Pakete (wie Oracle jdk) oder aktualisierte Versionen verfügbarer Pakete enthält (Beispiel: LibreOffice 5 in LTS ist nur über dieses verfügbar PPA ).

  • apt-get [install|update|upgrade|purge|...]: Dies ist "der" Befehlszeilen-Paket-Handler, mit dem der Zustand manipuliert wird = von jedem Repository auf dem System (Installation/Aktualisierung/Aktualisierung kann als Änderung des aktuellen Repository-Status angesehen werden).

In unserem Fall: Mit dem Befehl Sudo add-apt-repository ppa:webupd8team/Java Teilen wir dem System mit, dass das nächste Repository-Update Paketinformationen auch von webupd8 repo abrufen muss.

Mit Sudo apt-get update Aktualisieren wir das System-Repository tatsächlich (für all diese Vorgänge sind Superuser-Berechtigungen erforderlich, daher stellen wir den Befehlen Sudo voran).

Sudo apt-get install Oracle-Java8-installer

  • update-Java-alternatives (eine bestimmte Java version von update-alternatives ): In Ubuntu bieten mehrere Pakete die gleiche Funktionalität (im Internet surfen, E-Mails kompilieren, eine Textdatei bearbeiten oder ausführbare Java/Javac-Dateien bereitstellen ...) Damit das System den Benutzer auswählen kann favourites tool verwendet für eine bestimmte aufgabe einen mechanismus mit symlinks unter /etc/alternatives/ Versuchen Sie, das jdk wie oben angegeben zu aktualisieren (wechseln Sie zwischen Java 7 und Java 8) und sehen Sie, wie sich die Ausgabe dieses Befehls ändert:

    ls -l /etc/alternatives/Java*

In unserem Fall: Sudo update-Java-alternatives --set Java-8-Oracle Aktualisieren Sie Symlinks unter/etc/alternatives, um auf ausführbare Java-8-Oracle-Dateien zu verweisen.

Extras:

  • man <command>: Verwenden Sie man, um eine wirklich gut geschriebene und detaillierte Hilfe zu (fast) jedem Shell-Befehl und seinen Optionen (every) zu lesen Befehl, den ich in dieser kleinen Antwort erwähne, hat eine Manpage, versuchen Sie man update-Java-alternatives).

  • apt-cache search <search_key>: Fragen Sie den APT Cache ab, um nach einem mit search_key verknüpften Paket zu suchen zur Verfügung gestellt (kann der Paketname oder ein Wort in der Paketbeschreibung sein).

  • apt-cache show <package>: Liefert APT Informationen für ein bestimmtes Paket (Paketversion, installiert oder nicht, beschreibung).

107

Wie Sie sehen können, habe ich nur Java 1.7 installiert (auf einem Ubuntu 14.04-Rechner).

update-Java-alternatives -l
Java-1.7.0-openjdk-AMD64 1071 /usr/lib/jvm/Java-1.7.0-openjdk-AMD64

Um Java 8 zu installieren, habe ich,

Sudo add-apt-repository ppa:openjdk-r/ppa
Sudo apt-get update
Sudo apt-get install openjdk-8-jdk

Danach habe ich jetzt Java 7 und 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 HINZUGEFÜGT (umschalten zwischen verschiedenen Versionen)

  • führen Sie den folgenden Befehl vom Terminal aus:

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:

Wie Sie sehen können, wird JDK 8 geöffnet. Um zu JDK 7 zu wechseln, drücken Sie 1 und drück die Enter Schlüssel. Machen Sie dasselbe für javac und für Sudo update-alternatives --config javac.

Überprüfen Sie die Versionen, um die Änderung zu bestätigen: Java -version und javac -version.

79
samsamara

Ich bekomme OpenJDK 8 aus den offiziellen Debian-Repositories und nicht aus zufälligen PPA- oder nicht freien Oracle-Binärdateien. So habe ich es gemacht:

Sudo apt-get install debian-keyring debian-archive-keyring

Machen /etc/apt/sources.list.d/debian-jessie-backports.list:

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

Machen /etc/apt/preferences.d/debian-jessie-backports:

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

Dann mach endlich die Installation:

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

das sollte funktionieren

1
Ahmed Emad