Ubuntu: OpenJDK 8 - Unable to locate package

后端 未结 6 1899
遇见更好的自我
遇见更好的自我 2020-12-12 10:44

So I just installed Ubuntu, and this is my first time working in a Linux environment, so bear with my noobishness here.

Anyway, I downloaded the Java 8 JDK directly

相关标签:
6条回答
  • 2020-12-12 11:17

    As you can see I only have java 1.7 installed (on a Ubuntu 14.04 machine).

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

    To install Java 8, I did,

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

    Afterwards, now I have java 7 and 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 ADDED (how to switch between different versions)

    • run the follwing command from the terminal:

    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:
    

    As you can see I'm running open jdk 8. To switch to to jdk 7, press 1 and hit the Enter key. Do the same for javac as well with, sudo update-alternatives --config javac.

    Check versions to confirm the change: java -version and javac -version.

    0 讨论(0)
  • 2020-12-12 11:20

    I was having the same issue and tried all of the solutions on this page but none of them did the trick.

    What finally worked was adding the universe repo to my repo list. To do that run the following command

    sudo add-apt-repository universe
    

    After running the above command I was able to run

    sudo apt install openjdk-8-jre
    

    without an issue and the package was installed.

    Hope this helps someone.

    0 讨论(0)
  • 2020-12-12 11:21

    I'm getting OpenJDK 8 from the official Debian repositories, rather than some random PPA or non-free Oracle binary. Here's how I did it:

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

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

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

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

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

    Then finally do the install:

    sudo apt-get update
    sudo apt-get -t jessie-backports install openjdk-8-jdk
    
    0 讨论(0)
  • 2020-12-12 11:22

    UPDATE: installation without root privileges below


    I advise you to not install packages manually on ubuntu system if there is already a (semi-official) repository able to solve your problem. Further, use Oracle JDK for development, just to avoid (very sporadic) compatibility issues (i've tried many years ago, it's surely better now).

    Add the webupd8 repo to your system:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    

    Install your preferred version of jdk (versions from java-6 to java-9 available):

    sudo apt-get install oracle-java8-installer
    

    You can also install multiple version of jdk, mixing openjdk and oracle versions. Then you can use the command update-java-alternatives to switch between installed version:

    # 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
    

    Requirements

    If you get add-apt-repository: command not found be sure to have software-properties-common installed:

    sudo apt-get install software-properties-common
    

    If you're using an older version Ubuntu:

    sudo apt-get install python-software-properties
    

    JDK installation without root privileges

    If you haven't administrator rights on your target machine your simplest bet is to use sdkman to install the zulu certified openjdk:

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

    NOTE: sdkman allow to install also the official Oracle JDK, although it's not a the default option. View available versions with:

    sdk ls java
    

    Install the chosen version with:

    sdk install java <version>
    

    For example:

    sdk install java 9.0.1-oracle
    

    Glossary of commands

    • sudo <command> [command_arguments]: execute a command with the superuser privilege.

    • add-apt-repository <PPA_id>: Ubuntu (just like every Debian derivatives and generally speaking every Linux distribution) has a main repository of packages that handle things like package dependencies and updating. In Ubuntu is possible to extend the main repository using a PPA (Personal Package Archive) that usually contains packages not available in the system (just like oracle jdk) or updated versions of available ones (example: LibreOffice 5 in LTS is available only through this PPA).

    • apt-get [install|update|upgrade|purge|...]: it's "the" command-line package handler used to manipulate the state of every repository on the system (installing / updating / upgrading can be viewed as an alteration of the repository current state).

    In our case: with the command sudo add-apt-repository ppa:webupd8team/java we inform the system that the next repository update must retrieve packages information also from webupd8 repo.

    With sudo apt-get update we actually update the system repository (all this operations requires superuser privileges, so we prepend sudo to the commands).

    sudo apt-get install oracle-java8-installer

    • update-java-alternatives (a specific java version of update-alternatives): in Ubuntu several packages provides the same functionality (browse the internet, compile mails, edit a text file or provides java/javac executables...). To allows the system to choose the user favourites tool given a specific task a mechanism using symlinks under /etc/alternatives/ is used. Try to update the jdk as indicated above (switch between java 7 and java 8) and view how change the output of this command:

      ls -l /etc/alternatives/java*

    In our case: sudo update-java-alternatives --set java-8-oracle update symlinks under /etc/alternatives to point to java-8-oracle executables.

    Extras:

    • man <command>: start using man to read a really well written and detailed help on (almost) every shell command and its options (every command i mention in this little answer has a man page, try man update-java-alternatives).

    • apt-cache search <search_key>: query the APT cache to search for a package related with the search_key provided (can be the package name or some word in package description).

    • apt-cache show <package>: provides APT information for a specific package (package version, installed or not, description).

    0 讨论(0)
  • 2020-12-12 11:24

    After adding the JDK repo, before Installing you might want to run an update first so the repo can be added run apt update

    an then continue with your installation sudo apt install adoptopenjdk-8-hotspot

    0 讨论(0)
  • 2020-12-12 11:30
    sudo apt-get update
    sudo apt-get  install openjdk-8-jdk
    

    this should work

    0 讨论(0)
提交回复
热议问题