Mac OS X에 Java 7을 설치했지만 터미널에서 여전히 버전 6을 사용하고 있습니다.
oracle 웹 사이트에서 다운로드 한 JDK 7u7을 설치했습니다. 그러나 설치 후에도 터미널에 여전히 Java 버전 6이 표시됩니다.
$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
왜 Java 7이 나타나지 않는지 아십니까?
답변 : 문제가 해결되었습니다. 대답은 다음과 같습니다. 터미널에 .bash_profile이 있고 java 홈 변수가 1.6으로 설정되어 있음을 발견했습니다.
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
그래서 이것은 새로운 터미널 창을 열 때마다 문제를 일으키는 선입니다. 이 줄을 제거하면 문제가 해결됩니다. 여전히 @aleroot가 말한 것을 따라야하지만, 그래도 효과가 없다면 .bash_profile (또는 .bashrc) 설정 파일을 확인하여 이전에 Java 버전을 내보냈는지 확인하십시오.
다음과 같이 Java 환경 설정 분할 창에 입력하고 JVM 7에만 플래그를 지정해야하기 때문입니다.
Mac OS X에서 Java 환경 설정 창 을 쉽고 빠르게 열려면 ⌘+를 사용SPACE 하여 스포트라이트를 호출 하고 시스템 환경 설정을 입력 하면 창의 마지막 행에 표시됩니다.
Oracle의 설치 프로그램은 Java를에 넣습니다 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. 그리고 덮어 쓰지 않습니다 /usr/bin/java
. 따라서
whereis java
터미널에서 / usr / bin / java를 반환합니다. (이것은 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
Apple의 1.6 버전 인을 가리킴).
따라서 새로운 Java 버전을 사용하려면 /usr/bin/java
심볼릭 링크를 /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
대신 가리 키십시오 .
sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
JDK 7을 설치하면 이 문제가 저절로 해결됩니다.
JRE (Java Runtime Environment)가 아니라 컴파일러 및 이와 유사한 기능을 포함하는 JDK (Java Development Kit)를 확보하십시오.
vi ~/.bash_profile
더하다
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
/usr/bin/java
링크 대상에 최신 Java 7 패키지를 설치하도록 지시합니다 .
/Library/Java/JavaVirtualMachines/
JDK의 1.7.0_17
JAVA_HOME
경우 :
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
참고 : 최근 Mac OS X을 Appels 자체 시스템 통합 Java 패키지에서 Oracle 기반 Java 패키지로 옮기기 위해이 영역에서 많은 변화가있었습니다. 위의 솔루션은 Mac OS X 10.8.2부터 잘 작동합니다
필자의 경우 문제는 Oracle이 이전과 다른 위치에 설치하고 있다는 것입니다.
Oracle에서 다운로드 : http://java.com/en/download/mac_download.jsp?locale=ko
시스템 환경 설정을보고 올바르게 설치되었는지 확인하십시오.
- Spotlight를 열려면 Command-Space를 입력하고 'System Preferences'를 입력 한 다음 Enter 키를 누르십시오.
- 맨 아래 행에서 Java 아이콘을 클릭하십시오. Java 제어판이 열리면 'Java'탭, '보기 ...'를 클릭하고 설치가 작동했는지 확인하십시오. 거기에 '경로'를 볼 수 있습니다.이 경로는 내 명령과 다른 경우 아래 명령에 속할 수 있습니다.
버전이 예상 한 것인지 확인하십시오 (필요에 따라 경로의 하위).
/ Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java -version
/ usr / bin / java에서 새 설치로의 링크 작성
sudo ln -fs / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java / usr / bin / java
위생 검사 버전 :
자바-버전
맥에 설치된 버전과 일치하도록 Java 버전을 업데이트하지 않는 터미널과 비슷한 문제가 발생했습니다.
JAVA_HOME 환경 변수 설정에 문제가 없었습니다.
나는 일시적이고 다소 고통 스럽지만 작동하는 해결책을 생각해 냈습니다.
.bash_profile에서 다음 줄을 추가하십시오.
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"
(이것은 내 컴퓨터의 경로이지만 귀하의 컴퓨터와 다를 수 있습니다. 경로는 / Library / Java / JavaVirtualMachines /와 일치해야합니다.)
질주 source ~/.bash_profile
내가 언급했듯이 이것은 자바 홈 경로가 하드 코딩되어 있기 때문에 임시 반창고 솔루션입니다. Apple이 이미 터미널에서 수행하고있는 것이므로 최신 경로를 설정할 수있는 방법이 없으며 문제는 Apple의 java_home 환경 변수가 업데이트되지 않는다는 것입니다.
El Capitan 이후 /usr/bin/java
새로운 "루트리스"정책이 도입 되었기 때문에 심볼릭 링크 를 삭제하기가 어렵습니다 .
따라서, 단순히 (내 경우에는 이것이 최신 자바 버전에 대한 경로를 추가 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
받는 사람) PATH
내에서 .bashrc
파일 :
# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH
.bashrc
현재 세션에 대한 파일 을 다시로드하려면 source ~/.bashrc
셸에서 실행 하십시오. .bashrc
파일을 변경하기 전에 시작된 세션에 대해서만이 작업을 수행해야 합니다.
이제 java
쉘에서 사용할 때 최신 버전이 사용됩니다 .
나에게 가장 쉽고 깨끗한 방법은 다음과 같이 homebrew를 사용하여 Java를 설치하는 것입니다.
https://stackoverflow.com/a/28635465
brew update
brew cask install java
기본 문제 : /usr/bin/java
OSX 자체에서 처음 제공하는 문제 ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
) JDK 설치 프로그램에서 다운로드 한 문제를 지적해야합니다. 아래 단계는 OSX 10.10.4 Yosemite에 대한 것입니다.
- 시스템 환경 설정을 열고-> Java를 선택하십시오. Java 창이 열립니다.
- 상단의 Java 탭을 클릭하십시오. '보기'버튼을 클릭하십시오.
- 다음과 같이 Java Runtime Environment 설정 탭이 열립니다.
Path
항목을 두 번 클릭 하고 경로를 복사하십시오 (cmd + c). 이것은 JDK 설치 프로그램 / 업데이트가 설치 한 최신 버전입니다. 내 경우에는 경로는/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
- 터미널을 엽니 다. 이 단계에서는
ln -s
시스템 java 바이너리를 이전 단계에서 발견 한 최신 버전 으로 지정합니다 (기호 링크, 명령). 아래 명령을 실행하십시오.
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
그게 다야. 확인하려면 java -version
터미널에서 실행 하면됩니다. 설치 / 업데이트 한 최신 버전을 출력해야합니다.
터미널에서 다음 명령을 실행할 수 있습니다.
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
그리고 이것은 Java old를 새로운 것으로 대체합니다.
내가 했어
export JAVA_HOME=`/usr/libexec/java_home`
Java 8 문제가 해결되었습니다.
전에:
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
후:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
http://www.java.com/en/download/faq/java_mac.xml 은 이해하기 좋은 곳이며, Apple은 Java에 대한 지원을 중단하고 왜 Java Preferences가 더 이상 존재하지 않고 System_Preferences => Java = > Oracle의 Java 7이 설치된 경우 Java.
Jenv 도구를 살펴 보시기 바랍니다.
그러면 설치된 JVM간에 언제든지 전환 할 수 있습니다.
간단히 :
jenv global oracle-1.7
나중에 테스트 목적으로 :
jenv global oracle-1.6
그리고 더 많은 명령을 사용할 수 있습니다.
JAVA_HOME 경로를 하드 코딩하는 것이 가장 좋은 방법은 아닙니다. 이 /usr/libexec/java_home
유틸리티는 Mac OSX Lion 10.7.5 및 JDK 1.7.0_13에서 작동합니다. 매뉴얼 페이지에 따르면 Apple의 이전 Java 환경 설정 창과 함께 사용되지만 Oracle (Java Control Panel)에서 제공하는 대체 기능과 함께 작동하는 것으로 보입니다. 예를 들어 running /usr/libexec/java_home -V
은 내 컴퓨터에 설치된 모든 JDK (1.6. * 및 1.7. *)를 나열합니다.
따라서 다른 스레드에서 논의 된 것처럼 (예 : OSX에서 JAVA_HOME을 무엇으로 설정해야합니까 ) 여전히 .bash_profile에 다음 줄을 추가하는 것이 좋습니다.
export JAVA_HOME=$(/usr/libexec/java_home)
이것은 견과류입니다! 오라클은 아무것도 설치하지 않는 설치 프로그램을 어떻게 제공합니까?
어쨌든 그것은 다음과 같습니다.
sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java
여기서 1.8.0_31은 설치된 Java 버전입니다 ...
간단한 솔루션
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
컴퓨터에 여러 Java 버전이 있고 런타임에 동적으로 선택하려는 경우, 즉 내 경우에는 두 가지 버전이 있습니다.
ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x 3 root wheel 96B Nov 16 2014 jdk1.7.0_71.jdk/
drwxr-xr-x 3 root wheel 96B Mar 1 2015 jdk1.8.0_31.jdk/
/ etc / profile 내용을 수정하여 변경할 수 있습니다. 파일 끝에 다음 두 줄을 추가하거나 수정하십시오.
export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
필자의 경우 사용하려면 다음과 같아야합니다.
자바 7 :
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
자바 8 :
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
파일을 저장 한 후 실행 source /etc/profile
하면 제대로 작동합니다. 다음에 따라 첫 번째 옵션과 두 번째 옵션을 사용할 때의 결과는 다음과 같습니다.
자바 7 :
java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
자바 8 :
java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java 폴더가 다른 위치에있는 경우 프로세스가 비슷합니다.
jre가 아닌 jdk를 설치하려고 할 수 있다고 생각합니다. jdk를 설치하면 / usr / bin / java의 java가 바뀌고 모든 라이브러리가 제대로 작동합니다.
이 명령을 실행하여 / Library / Internet Plugins / 아래에있는 Java 버전을 찾을 수 있습니다.
defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
.bash_profile이 변경 사항을 반영하지 않기 때문에 발생합니다. 반영하려면 다음 명령을 사용하십시오.
$ source .bash_profile
Homebrew를 설치 한 경우 java-switcher 를 설치 하여 Java 기본 버전을 더 빠르게 변경할 수 있습니다.
brew tap andycillin/tap
brew install java-switcher
그런 다음 하나의 명령 만 사용하여 기본 Java 버전을 전환 할 수 있습니다.
java-switcher 1.7
또는
java-switcher 10
이 문제에 직면하지 않았기 때문에 직감을 겪고 있습니다.
당신은 이것을 시도 할 수 있습니다 :
소프트 링크 "java_home"은 어디에 있습니까?
ls -lrt /usr/libexec/java_home
출력 : (준비된) lrwxr-xr-x java_home-> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions 내 MAC은 다음을 생성합니다.
lrwxr-xr-x CurrentJDK ->
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**
lrwxr-xr-x Current -> A
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.6.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.4 -> CurrentJDK
이것을 바탕으로 더 진행할 힌트가 있을까요?
Yosemite를 다시 설치하고 터미널 (java -version) 및 (javac -version)에서 Java 버전을 교차 확인 하여이 문제를 해결했습니다. 지금 완벽하게 작동합니다. 버전 6이 여전히 존재하므로 java 7로 변경되지 않습니다 (command + n ) libray> java> javavirtualmachine> javac 현재 버전 .java 홈으로 주소 지정해야합니다.
이 문제를 해결했습니다. sudo rm /usr/bin/java
그리고 마지막 Java SE Runtime Environment를 다운로드하여 설치했습니다. http://www.oracle.com/technetwork/java/javase/downloads/index.html
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java
내가있어 때문에 나를 위해 작동하지 않았다 Operation not permitted
. El Capitan은 이제 특정 시스템 디렉토리를 "루트리스"모드 (일명 시스템 무결성 보호)로 보호합니다. macOS Sierra 및 아마도 새로운 macOS 버전에도 적용 할 수 있습니다.
Oracle 사이트에서 분산 JDK DMG를 통해 설치하면 모든 것이 자동 업데이트됩니다. (El Capitan에서) System Preferences > Java
do 업데이트를 통한 업데이트를 보았지만 명령 줄에는 반영되지 않았습니다. DMG를 통해 설치하면 작업이 수행됩니다.
설치된 JDK 버전을 확인하십시오.
$ ls /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk jdk1.8.0_91.jdk
이제 ~/.bashrc
내보내기 JAVA_HOME
에서 버전을 지정하십시오.
if [ -e /usr/libexec/java_home ]; then
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi
bashrc 파일을 소싱하면 Java 버전이 업데이트됩니다.
$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
최신 100 % 효과적인 방법 :
bash에서 :
vim ~/.bash_profile
더하다
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
:wq
저장- cmd + q 강제 종료 bash
- bash를 다시 열고 입력하십시오.
java -version
그러나 실제로이 경로는 jdk가 아닌 jre를 가리 킵니다.
JDK 경로를 가리 키려면 다음이 필요합니다.
- 단일 JRE 런타임이 아닌 JDK를 설치했는지 확인하십시오.
- 이전 경로를 대체
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, 당신은 갈 수/Library/Java/JavaVirtualMachines
있는지 당신은 당신이 예상 JDK의 버전을 설치 할 수 있습니다.
'Programming' 카테고리의 다른 글
문자열의 UPDATE 및 REPLACE 부분 (0) | 2020.02.23 |
---|---|
Graphviz : .dot에서 그래프로 이동하는 방법? (0) | 2020.02.23 |
Set과 List의 차이점은 무엇입니까? (0) | 2020.02.23 |
sed에서 욕심 많은 (reluctant) 정규 표현식 일치? (0) | 2020.02.23 |
브라우저의 "F5"및 "Ctrl + F5"새로 고침은 어떤 요청을 생성합니까? (0) | 2020.02.23 |