[java] Mac에 Java 8을 설치하는 방법

Java 8이 필요한 최신 JavaFX로 프로그래밍하고 싶습니다. IntelliJ 13 CE 및 Mac OS X 9 Mavericks를 사용하고 있습니다. Oracle의 Java 8 설치 프로그램을 실행했는데 파일이 끝 났던 것처럼 보입니다.

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

그러나 이전 버전은

/System/Library/Java/JavaFrameworks/jdk1.6....

확실하지 최신 설치가이를두고 왜 /Library대신에 /System/Library(도 차이가 무엇인지). 그러나 /usr/libexec/java_home1.8을 찾지 못하므로 현재 Java 버전을 설정하는 방법에 대해 찾은 모든 게시물이 작동하지 않습니다. 1.8이 /System/Library...경로 에있는 것처럼 보이도록 심볼릭 링크를 추가하려고 시도했지만 도움이되지 않습니다. /usr/libexec/java_home -V여전히 오래된 Java 1.6 만 나열합니다.

아이러니하게도 시스템 환경 설정의 “자바”제어판에는 Java 1.8 만 표시됩니다!

오라클 설치 프로그램이 실제로 어디로 향하지 않습니까? 이 문제를 어떻게 해결할 수 있습니까?



답변

오라클은 Java를 쉽게 설치하고 구성 할 수있는 기록이 좋지 않지만 Homebrew 를 사용하여 최신 OpenJDK (Java 14)를 다음과 함께 설치할 수 있습니다.

brew cask install java

이전 버전 (일반적으로 Java 8)에 따라 많은 사용 사례의 경우 AdoptOpenJDK 프로젝트를 통해 추가 단계를 수행 할 수 있습니다.

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

기존의 Homebrew 사용자는 Error: Cask adoptopenjdk8 exists in multiple taps다른 지침이있는 사전 해결 방법으로 인해 발생할 수 있습니다 . 로 위치를 완전히 지정하면이 문제를 해결할 수 있습니다 brew cask install adoptopenjdk/openjdk/adoptopenjdk8.


답변

참고 : Oracle Java 8/9/10은 더 이상 공개 다운로드에 사용할 수 없습니다 (라이센스 변경).

터미널에서 먼저 brew 를 설치하고 업데이트하십시오 .

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update

2019 년 6 월 현재 NEW

AdoptOpenJDK에서 JDK를 설치하려면 다음을 수행하십시오.

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11

낡은

자바 8 :

brew cask install java8

자바 최신 :

brew cask install java


답변

Java8은 더 이상 homebrew에서 사용할 수 brew install java8없으며 작동하지 않습니다.

대신 다음을 사용하십시오.

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

기술적 세부 사항 은 이 커밋 을 참조 하십시오.

주변에 문제가있을 수도 있습니다 Cask adoptopenjdk8 exists in multiple taps. 이것은 현재 알려진 문제이며 여기에서 볼 수 있습니다.

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

세부 정보를 거치지 않으려는 사람들을 위해 요약은 다음과 같습니다.

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup


답변

방금 MBP에서이 작업을 수행해야했습니다.

$ brew tap caskroom/versions
$ brew cask install java8

java8을 설치하기 위해.


답변

로컬 컴퓨터에서 응용 프로그램을 실행하기 시작한 옵션은 Docker를 사용하는 것입니다. 공식 JDK 컨테이너 내에서 간단히 응용 프로그램을 실행할 수 있습니다. 즉, 로컬 컴퓨터에 모든 것을 설정하는 것에 대해 걱정할 필요가 없습니다 (또는 다른 응용 프로그램에 대해 여러 다른 버전의 JDK를 실행하는 것에 대해 걱정할 필요가 없음).

이것이 현재 설치 문제를 해결하는 데 도움이되지는 않지만이 솔루션은 개발자 컴퓨터에서 Java를 올바르게 실행하는 것과 관련된 문제를 피할 수 있습니다.

이점은 다음과 같습니다.

  1. 로컬 컴퓨터에서 Java 버전을 설정할 필요가 없습니다 (Docker Hub에서 가져 오는 컨테이너 내에서 Java를 실행하면됩니다)
  2. 컨테이너의 태그를 변경하여 다른 버전의 Java로 전환하기가 매우 쉽습니다.
  3. 프로젝트 종속성은 컨테이너 내에 설치되므로 구성을 엉망으로 만들면 컨테이너를 정리하고 다시 시작할 수 있습니다.

매우 간단한 예 :

Dockerfile: 만들기

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • 여기서는 SDK 버전 8을 실행하는 Java 컨테이너를 지정합니다 ( java:8-Java 7을 사용하려면 다음을 지정할 수 있음 java:7).
  • /usr/src/myapp컨테이너 내부의 디렉토리와 로컬 디렉토리를 매핑 하고 있습니다.

docker-compose.yml파일을 작성 하십시오.

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

이제이 Java 파일이 있다고 가정하십시오.

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World");
    }
}

따라서 다음과 같은 파일 구조가 있습니다.

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

다음과 같은 다양한 Java 작업을 수행 할 수 있습니다.

엮다:

docker-compose run --rm java javac HelloWorld.java 
  • HelloWorld.class는 현재 디렉토리에 표시됩니다 (이는 코드가 존재하는 컨테이너 내부의 위치에 현재 디렉토리를 맵핑 한 원인입니다)

운영:

docker-compose run --rm java java HelloWorld 
  • 참고 : 처음 실행하면 이미지 등을 가져옵니다. 시간이 오래 걸립니다-처음에만 발생합니다.
  • docker-compose run -컨테이너 내에서 명령을 실행합니다
  • -rm 명령 실행이 완료되면 docker가 컨테이너를 제거하도록 지시합니다.
  • java 이 명령이 실행될 서비스 / 컨테이너의 이름입니다 (도커 작성 파일에서).
  • 나머지 줄은 컨테이너 내부에서 실행되는 명령입니다.

이것은 로컬 설정을 완전히 망칠 필요없이 다른 응용 프로그램에 대해 다른 버전의 Java를 실행하는 멋진 방법입니다.

다음은 Maven과 간단한 Spring 앱 이있는 약간 더 복잡한 예입니다.

기권:


답변

가정 : Mac 컴퓨터에 이미 홈 브루를 설치했습니다.

캐스 크 설치 (Homebrew 0.9.5 이상에서는 캐스 크가 포함되므로이 단계를 건너 뛰십시오) :

$ brew tap caskroom/cask
$ brew tap caskroom/versions

최신 Java를 설치하려면 다음을 수행하십시오.

$ brew cask install java

Java 8을 설치하려면 :

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

여러 버전을 설치 / 관리하려면 ‘jenv’를 사용할 수 있습니다.

jenv를 설치하고 설정하십시오 :

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

설치된 Java를 jenv에 추가하십시오.

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

설치된 모든 Java를 보려면

$ jenv versions

위의 명령은 설치된 java 목록을 제공합니다.

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

사용하려는 Java 버전을 구성하십시오.

$ jenv global oracle64-1.6.0.39

JAVA_HOME을 설정하려면 다음을 수행하십시오.

$ jenv enable-plugin export


답변

Android SDK Manager를 실행하려면 JDK8을 설치해야하기 때문에 해결해야 할 동일한 문제가 있습니다 (JDK9와 잘 작동하지 않는 것 같습니다). 그러나 Mac (Sierra)의 모든 문제를 해결하는 방법을 알려줍니다.

먼저 cask 및 jenv로 추출 해야합니다 .

  1. 유용한 안내서는 Homebrew Cask 설치 안내서 에서 찾을 수 있습니다 . 터미널에서 실행되는 ‘캐스 크룸 / 버전’을 탭해야합니다.
    brew tap caskroom/versions
  2. 그런 다음 jenv를 다음과 같이 설치하십시오.
    brew install jenv
  3. 통 당신이 원하는대로 버전 설치
    brew cask install java8(또는 java7또는 java최신 버전을 설치하려는 경우, jdk9)
  4. 마지막 단계는 jenv versions시스템에 설치된 모든 버전을 나열 하기 위해 실행할 버전을 구성하고 jenv가 JAVA_HOME을 관리하도록 허용
    한 다음 원하는 버전을 활성화하는 것입니다.jenv global [JDK_NAME_OF_LIST]

이 Github Gist brew-java-and-jenv.md의 블로그 에서 다른 유용한 정보를 찾을 수 있습니다 .이 블로그 에서 MacJenv 웹 사이트여러 JDK 설치