programing

Mac OS X 10.6.7 Java 경로 현재 JDK 혼동

itsource 2021. 1. 15. 08:11
반응형

Mac OS X 10.6.7 Java 경로 현재 JDK 혼동


Mac OSX에서 여러 Java 버전에 대한 이해 (실제 경로 대 링크)가 있습니다. 일반적으로 Windows에서 내 컴퓨터에 여러 버전이 설치되어 있으면 원하는 버전의 경로를 선택하여 사용할 수 있습니다. 그러나 MAC OS XI에는 CurrentJDK를 가리키는 링크라는 것이 있으며 다른 버전을 사용하려면 링크를 CurrentJdk로 변경해야합니다. 그러나 저에게 혼란스러운 것은 아래에서 볼 수 있듯이 모든 버전이 동일한 CurrentJDK를 가리키고 있다는 것입니다. 즉, 모든 버전이 현재 버전을 가리킴을 의미합니까? 나는 그들 중 하나만 CurrentJDK를 가리킬 것이라고 기대하고 있었고 여기에서는 그렇지 않은 내가 필요한 것으로 변경할 수 있습니다. 내가 알아야 할 것은 각 버전의 bin (Commands) 폴더 경로를 찾는 방법입니다. CurrentJDK를 가리키는 데 사용할 수 있습니까? 또한 CurrentJDK에 대한 링크를 변경하는 방법을 알려주십시오.

$ java -version

java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)

$ pwd

/System/Library/Frameworks/JavaVM.framework/Versions


$ ls -l

lrwxr-xr-x   1 root  wheel    5 Mar 20 11:12 1.3 -> 1.3.1
drwxr-xr-x   3 root  wheel  102 Dec  2  2009 1.3.1
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Mar 20 11:12 1.6.0 -> CurrentJDK
drwxr-xr-x  10 root  wheel  340 Mar 20 11:13 A
lrwxr-xr-x   1 root  wheel    1 Mar 20 11:12 Current -> A
lrwxr-xr-x   1 root  wheel   59 Mar 20 11:12 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

대부분의 경우 jdk가 하나만 설치되어 있으므로 모든 소프트 링크가 동일한 jdk를 가리 킵니다. 그러나 여러 개의 jdk가 설치되어있는 경우 / Application / Utilities에서 'Java Preferences'앱과 함께 사용할 jdk를 선택해야합니다.

소프트 링크는 ln -s터미널 명령 으로 생성됩니다 .


다른 유형의 JDK 또는 설치의 경우 경로가 다릅니다.

Mac OS X Mavericks에서 찾은 경로는 다음과 같습니다.

1) 내장 JRE 기본값 :

 /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2) Apple에서 다운로드 한 JDK :

 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

3) Oracle에서 다운로드 한 JDK :

/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

다음 명령을 실행하십시오.

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

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/
  oracle64-1.8.0.45 added
  1.8.0.45 added
  1.8 added

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
  oracle64-1.7.0.79 added
  1.7.0.79 added
  1.7 added

$ jenv versions
* system (set by /Users/wanluwang/.jenv/version)
  1.7
  1.7.0.79
  1.8
  1.8.0.45
  oracle64-1.7.0.79
  oracle64-1.8.0.45

$ java -version
  java version "1.8.0_45"
  Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
  Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

$ jenv global oracle64-1.7.0.79

$ java -version
  java version "1.7.0_79"
  Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

Apple 기술 Q & A Java 질문에서 :

사용자 기본 설정

On Mac OS X, the Java runtime provides the java.util.prefs API which is backed by the standard Mac OS X Preferences API and directories. Simply using this pure Java API reads and stores your application's preferences in ~/Library/Preferences in a Mac OS X property list file. For applications that may already have their own preferences format, these preferences should be stored in the ~/Library/Preferences directory as well. This directory can be reached from Java code by creating a file with the path of System.getProperty("user.home") + "/Library/Preferences/" + "com.example.your.Application". An application that should have global preferences across all users could instead reside in /Library/Preferences, however this directory is not writable by non-admin users.


set $JAVA_HOME=$(/usr/libexec/java_home) in your .bash_profile

or export JAVA_HOME=$(/usr/libexec/java_home);

echo $JAVA_HOME

ReferenceURL : https://stackoverflow.com/questions/6141180/mac-os-x-10-6-7-java-path-current-jdk-confusing

반응형