Mac OSX Java 터미널 버전이 잘못되었습니다.
좋아, 나는 Mac과 OSX를 처음 접했지만 내가 일하는 회사가 OSX와 Windows 시스템을 함께 사용하기 때문에 Java 프로그램에 대한 문제 해결을 수행 할 수 있도록 하나를 선택했습니다. 내가 겪고있는 문제는 Oracle 웹 사이트에서 Java 7을 설치할 때 환경 설정 메뉴를 업데이트하고 .jar 파일을 두 번 클릭하면 올바르게 실행되는 것처럼 보이지만 터미널 창의 버전은 여전히 1.6.0_43이고 터미널의 동일한 .jar 파일로 인해 이전 버전으로 인해 런타임 오류가 발생합니다.
/ Library / Java / JavaVirtualMachines /로 이동하면 빈 폴더가 표시됩니다. 다른 기사에서 본 것에서 Java 1.7.0의 버전 폴더가 있어야합니다. 무슨 일인지 아십니까? 터미널에서 올바른 버전의 Java를 사용하려면 어떻게해야합니까?
편집 : @DWilches는 원래 답변에 대해 언급합니다. (1)
total 64
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Mar 17 21:38 A
lrwxr-xr-x 1 root wheel 1 Mar 17 21:38 Current -> A
lrwxr-xr-x 1 root wheel 59 Mar 17 21:38 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
(2)
ls -ld /usr/bin/java
lrwxr-xr-x 1 root wheel 74 Mar 17 21:38 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
편집 : 새로운 답변으로 실수를해서 죄송합니다. 오랜만에 원본 게시물의 편집을 차단하는 사이트에 너무 익숙해졌습니다.
JDK
Mac OS에서 /usr/bin/java
친구는 실제 JDK 명령에 위임하는 스텁입니다. 이 스텁은 당신의 설정 존중 JAVA_HOME
환경 변수를하지만,이 작업을 위해 당신은 설치할 필요가 JDK (에서 http://www.oracle.com/technetwork/java/javase/downloads/index.html을 받는 반대) JRE ( http://java.com에서 ).
JDK는 /Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk
(NN 값에 관계없이)에 설치되므로 1.7 을 사용 하도록 JAVA_HOME
환경 변수를 /Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home
로 설정하십시오 /usr/bin/java
. 당신은 단순히 지정하여 1.6로 다시 전환 할 수 있습니다 JAVA_HOME
에 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
대신. /usr/libexec/java_home
도구를 사용하여 올바른 값을 자동으로 찾을 수 있습니다. 예를 들어 /usr/bin/java
Java 7을 사용할 수 있습니다.
export JAVA_HOME=`/usr/libexec/java_home -v '1.7*'`
Java 6을 사용하려면 다음을 수행하십시오.
export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`
Java 8 (사용 -v '1.8*'
) 에도 동일하게 적용됩니다 . 이렇게하면 관련 메이저 버전에 대해 최신 설치된 JDK가 선택 NN
되므로 업데이트를 설치할 때 수동 으로 변경할 필요가 없습니다 .
JRE
명령 줄에서 1.7 또는 1.8 JRE 를 실행하려면 에서 찾을 수 있습니다 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
. 이것은 고정 경로이며 주어진 시간에 하나의 "공용"JRE 만 설치할 수 있습니다.
$ /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)
셸 별칭을 사용할 수 있습니다. .bashrc
alias java_jre='/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'
문제는 Oracle의 JRE 설치가 / usr / bin / java 실행 파일을 변경하지 않는다는 것입니다. 이 Java를 사용하려면 / Library 아래의 경로를 사용해야합니다 (JDK 설치가 있으므로 다를 수 있음).
Oracle의 JRE 설치 문서에 따라
Oracle에서 JRE를 설치하면 java -version 심볼릭 링크가 업데이트되거나 경로에 java가 추가되지 않습니다. 이를 수행하려면 JDK를 설치해야합니다.
Oracle JDK는 /usr/bin/java
Java 7 실행 파일을 가리 키도록 변경 됩니다. 개발을하고 있다면 JRE보다 더 많은 것을 포함하므로 이것을 사용해야합니다.
Oracle 설치 FAQ에 따르면
Q : JRE 또는 JDK를 설치해야합니까?
A : Java 응용 프로그램을 실행하려면 JRE (Java Runtime Environment)를 설치하십시오. JRE는 Oracle Java라고도합니다. JRE를 설치 한 후에는 JAR 파일, JNLP 파일을 두 번 클릭하고 브라우저를 통해 Java 애플릿 및 응용 프로그램을 시작할 수 있습니다. 32 비트 모드의 Firefox 및 Chrome과 같은 32 비트 브라우저는 JRE에서 지원되지 않습니다.
If you plan to write Java applications, install the Java Development Kit (JDK).
First, did you Quit the Console and open it again so it has chances of taking the changes in the PATH variable ?
If you've already done this, then check which the default version of your Java is:
dwilches@ ~$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
dwilches@ Versions$ ls -l
lrwxr-xr-x 1 root wheel 59 Mar 19 10:07 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 1 Mar 19 10:08 Current -> A
drwxr-xr-x 8 root wheel 272 Mar 25 10:03 A
Now, you can see that the "Current" version is "A" (that's my Java7). If I would like to change it to Java 1.6 then I could write:
dwilches@ Versions$ sudo unlink Current
dwilches@ Versions$ sudo ln -s 1.6 Current
And then:
dwilches@ Versions$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
So you may use this to make "Current" point to your desired Java location.
Just like Ian said, but probably you want java7 to be called from .sh script, so you need a function instead of alias added to .bash_profile:
java7() {
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java "$@"
}
export -f java7
참고URL : https://stackoverflow.com/questions/15624667/mac-osx-java-terminal-version-incorrect
'IT Share you' 카테고리의 다른 글
setCurrentItem (0)을 호출 할 때 onPageSelected가 트리거되지 않습니다. (0) | 2020.12.03 |
---|---|
PHP를 사용한 Python SimpleHTTPServer (0) | 2020.12.03 |
Selenium WebDriverException을 수정하는 방법 : 연결하기 전에 브라우저가 종료 된 것 같습니다. (0) | 2020.12.03 |
cout은 무엇을합니까 <<“\ n”[a == N]; (0) | 2020.12.03 |
Buildr, Gradle 또는 Maven 3을 기다리시겠습니까? (0) | 2020.12.03 |