[java] Ubuntu : OpenJDK 8-패키지를 찾을 수 없음

그래서 방금 Ubuntu를 설치했고 Linux 환경에서 작업하는 것은 이번이 처음이므로 여기에서 멍청함을 참으십시오.

어쨌든 Oracle에서 직접 Java 8 JDK를 다운로드했지만 Java 8 용 OpenJDK도 있다는 것을 알고 있습니다. 두 가지 질문이 있습니다.

  1. Oracle 버전과 OpenJDK의 차이점은 무엇입니까? 장단점?

  2. OpenJDK 8을 얻으려고 할 때 할 수 없습니다. 조언을 구하면서 터미널 명령과 여기에 표시되는 오류 메시지를 붙여넣고 있습니다. 다시 말하지만, Linux를 처음 접한 사람은이 시점에서 내 첫 번째 Linux 배포판에 한 시간도 채 안 남았습니다.

    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
    

어떤 도움을 주시면 감사하겠습니다. 그동안 저는 Oracle 패키지를 사용하겠습니다. 감사.

편집하다:

그래서 이제 새로운 문제가 생겼습니다. 나는 OpenJDK 7을 설치했고 Maven과 함께 제공되었고 내가 2 대 1 거래를한다는 것을 깨닫기 전에 방금 설치했습니다. 이제 JDK 7과 Eclipse, Maven이 있으며 모두 작동하지만 8이 아닌 JDK 7에 갇혀 있습니다.

아래 링크가있는 것을 보았습니다. 아침에 확인하려고합니다. 오전 2시이고 지금은 피곤합니다. 이 새로운 문제에 대한 다른 조언을 주시면 감사하겠습니다. 그렇지 않으면 아침에 해당 링크를 먼저 확인하겠습니다.



답변

업데이트 : 아래의 루트 권한없이 설치


문제를 해결할 수있는 (반 공식) 저장소가 이미있는 경우 우분투 시스템에 수동으로 패키지를 설치하지 않는 것이 좋습니다. 또한 (매우 산발적 인) 호환성 문제를 피하기 위해 Oracle JDK를 개발에 사용하십시오 (수년 전에 시도해 보았지만 지금은 확실히 더 낫습니다).

시스템에 webupd8 저장소를 추가하십시오 .

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

선호하는 jdk 버전을 설치합니다 (java-6에서 java-9 버전 사용 가능) :

sudo apt-get install oracle-java8-installer

openjdk 및 oracle 버전을 혼합하여 여러 버전의 jdk를 설치할 수도 있습니다. 그런 다음 update-java-alternatives 명령을 사용하여 설치된 버전간에 전환 할 수 있습니다 .

# 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

요구 사항

당신이 얻을 경우 add-apt-repository: command not found반드시 가지고 software-properties-common설치 :

sudo apt-get install software-properties-common

이전 버전의 Ubuntu를 사용하는 경우 :

sudo apt-get install python-software-properties

루트 권한없이 JDK 설치

대상 컴퓨터에 대한 관리자 권한이없는 경우 가장 간단한 방법은 sdkmanzulu 인증 openjdk를 설치하는 데 사용 하는 것입니다.

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

참고 : sdkman은 기본 옵션은 아니지만 공식 Oracle JDK도 설치할 수 있습니다. 사용 가능한 버전보기 :

sdk ls java

다음을 사용하여 선택한 버전을 설치하십시오.

sdk install java <version>

예를 들면 :

sdk install java 9.0.1-oracle

명령 용어

  • sudo <command> [command_arguments] : 수퍼 유저 권한으로 명령을 실행합니다.

  • add-apt-repository <PPA_id> : Ubuntu (모든 Debian 파생 제품 및 일반적으로 모든 Linux 배포판과 마찬가지로)에는 패키지 종속성 및 업데이트와 같은 작업을 처리하는 패키지의 기본 저장소가 있습니다. Ubuntu에서는 일반적으로 시스템에서 사용할 수없는 패키지 (oracle jdk와 마찬가지로) 또는 사용 가능한 버전의 업데이트 된 버전 (예 : LTS의 LibreOffice 5는 이것을 통해서만 사용할 수 있음)을 포함하는 PPA (개인 패키지 아카이브)를 사용하여 주 저장소를 확장 할 수 있습니다. PPA ).

  • apt-get [install|update|upgrade|purge|...] : 시스템의 모든 저장소 상태 를 조작하는 데 사용되는 “”명령 줄 패키지 처리기입니다 (설치 / 업데이트 / 업그레이드는 저장소 현재 상태의 변경으로 볼 수 있음).

우리의 경우 : 명령 sudo add-apt-repository ppa:webupd8team/java을 사용하여 다음 저장소 업데이트가 webupd8 저장소에서도 패키지 정보를 검색해야 함을 시스템에 알립니다.

으로 sudo apt-get update우리가 실제로 시스템 저장소 업데이트 (이 운영하는 수퍼 유저 권한이 필요합니다 우리 앞에 추가 그래서 sudo는 명령으로).

sudo apt-get install oracle-java8-installer

  • update-java-alternatives ( update-alternatives 의 특정 자바 버전 ) : Ubuntu에서 여러 패키지가 동일한 기능을 제공합니다 (인터넷 검색, 메일 컴파일, 텍스트 파일 편집 또는 java / javac 실행 파일 제공 …). 시스템이 특정 작업에 대해 사용자 즐겨 찾기 도구를 선택할 수 있도록하기 위해 아래의 심볼릭 링크 를 사용하는 메커니즘 /etc/alternatives/이 사용됩니다. 위에 표시된대로 jdk를 업데이트하고 (Java 7과 Java 8간에 전환)이 명령의 출력이 어떻게 변경되는지 확인합니다.

    ls -l /etc/alternatives/java*

우리의 경우 : sudo update-java-alternatives --set java-8-oraclejava-8-oracle 실행 파일을 가리 키도록 / etc / alternatives 아래의 심볼릭 링크를 업데이트합니다.

추가 사항 :

  • man <command> : man을 사용하여 (거의) 모든 쉘 명령과 옵션에 대해 잘 작성되고 자세한 도움말을 읽으십시오 (이 작은 답변에서 언급 한 모든 명령에는 man 페이지가 있습니다. try man update-java-alternatives).

  • apt-cache search <search_key> : 제공된 search_key와 관련된 패키지를 검색하기 위해 APT 캐시를 쿼리합니다 (패키지 이름 또는 패키지 설명의 일부 단어 일 수 있음).

  • apt-cache show <package> : 특정 패키지 (패키지 버전, 설치 여부, 설명)에 대한 APT 정보를 제공합니다.


답변

보시다시피 Java 1.7 만 설치되어 있습니다 (Ubuntu 14.04 시스템에).

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

Java 8을 설치하기 위해

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

그 후, 이제 Java 7과 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

보너스 추가 (버전 간 전환 방법)

  • 터미널에서 다음 명령을 실행하십시오.

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:

당신은 내가 오픈 JDK 8을 실행하는거야 볼 수 있듯이 7 눌러 JDK하기 위해 전환하려면 1및 히트 Enter키를 누릅니다. 동일한 작업을 수행 javac뿐만 아니라,와 sudo update-alternatives --config javac.

버전을 확인하여 변경 사항을 확인하십시오. java -versionjavac -version.


답변

임의의 PPA 또는 무료가 아닌 Oracle 바이너리가 아닌 공식 데비안 리포지토리에서 OpenJDK 8을 얻고 있습니다. 내가 한 방법은 다음과 같습니다.

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

만들기 /etc/apt/sources.list.d/debian-jessie-backports.list:

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

만들기 /etc/apt/preferences.d/debian-jessie-backports:

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

그런 다음 마지막으로 설치를 수행하십시오.

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

이것은 작동합니다


답변

나는 같은 문제가 있었고이 페이지의 모든 솔루션을 시도했지만 아무도 트릭을하지 않았습니다.

마침내 효과가 있었던 universe것은 내 repo 목록에 repo를 추가하는 것 입니다. 이를 수행하려면 다음 명령을 실행하십시오.

sudo add-apt-repository universe

위의 명령을 실행 한 후 실행할 수있었습니다.

sudo apt install openjdk-8-jre

문제없이 패키지가 설치되었습니다.

이것이 누군가를 돕기를 바랍니다.


답변

JDK저장소를 추가 한 후 설치하기 전에 먼저 업데이트를 실행하여 저장소를 추가 할 수 있습니다.
apt update

그런 다음 설치를 계속하십시오.
sudo apt install adoptopenjdk-8-hotspot


답변