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_home
1.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를 올바르게 실행하는 것과 관련된 문제를 피할 수 있습니다.
이점은 다음과 같습니다.
- 로컬 컴퓨터에서 Java 버전을 설정할 필요가 없습니다 (Docker Hub에서 가져 오는 컨테이너 내에서 Java를 실행하면됩니다)
- 컨테이너의 태그를 변경하여 다른 버전의 Java로 전환하기가 매우 쉽습니다.
- 프로젝트 종속성은 컨테이너 내에 설치되므로 구성을 엉망으로 만들면 컨테이너를 정리하고 다시 시작할 수 있습니다.
매우 간단한 예 :
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 앱 이있는 약간 더 복잡한 예입니다.
기권:
- IntelliJ와 같은 IDE에서 실제로 시도하지 않았으므로 해당 측면이 어떻게 작동하는지 완전히 확신하지 못합니다. 도커 지원이 오는 것처럼 보이지만
- Spring Boot, Zuul 및 Docker로 Microservices를 실행하는 훨씬 더 복잡한 예는 다음과 같습니다.
답변
가정 : 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로 추출 해야합니다 .
- 유용한 안내서는 Homebrew Cask 설치 안내서 에서 찾을 수 있습니다 . 터미널에서 실행되는 ‘캐스 크룸 / 버전’을 탭해야합니다.
brew tap caskroom/versions
- 그런 다음 jenv를 다음과 같이 설치하십시오.
brew install jenv
- 통 당신이 원하는대로 버전 설치
brew cask install java8
(또는java7
또는java
최신 버전을 설치하려는 경우, jdk9) - 마지막 단계는
jenv versions
시스템에 설치된 모든 버전을 나열 하기 위해 실행할 버전을 구성하고 jenv가 JAVA_HOME을 관리하도록 허용
한 다음 원하는 버전을 활성화하는 것입니다.jenv global [JDK_NAME_OF_LIST]
이 Github Gist brew-java-and-jenv.md의 블로그 에서 다른 유용한 정보를 찾을 수 있습니다 .이 블로그 에서 Mac 및 Jenv 웹 사이트 에 여러 JDK 설치