Mac OS X 10.6.7 Java Path当前JDK令人困惑

时间:2011-05-26 15:35:16

标签: java macos

我在Mac OSX上对多个java版本的理解(实际路径与链接)有困难。通常在Windows中,如果我的机器上安装了多个版本,我可以选择我想要的版本的路径并使用它。但是在MAC OS X中,我认为有一些叫做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

5 个答案:

答案 0 :(得分:60)

对于不同类型的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

答案 1 :(得分:14)

大多数情况下,您只安装了一个jdk,因此所有软链接都指向同一个jdk。如果您确实安装了多个jdks,则需要在/ Application / Utilities中选择与“Java Preferences”应用程序一起使用的那个。

软链接是使用终端的ln -s命令创建的。

答案 2 :(得分:4)

只需运行以下命令:

$ 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)

答案 3 :(得分:0)

Apple Technical Q& A Java Questions:

用户首选项

在Mac OS X上,Java运行时提供了java.util.prefs API,该API由标准Mac OS X首选项API和目录支持。只需使用此纯Java API,即可在Mac OS X属性列表文件的〜/ Library / Preferences中读取和存储应用程序的首选项。对于可能已有自己的首选项格式的应用程序,这些首选项也应存储在〜/ Library / Preferences目录中。通过创建一个路径为System.getProperty(" user.home")+" / Library / Preferences /"的文件,可以从Java代码访问该目录。 +" com.example.your.Application"。应该具有所有用户的全局首选项的应用程序可以驻留在/ Library / Preferences中,但非管理员用户不能写入此目录。

答案 4 :(得分:0)

设置$ JAVA_HOME = $(/ usr / libexec / java_home) 在你的.bash_profile

或导出JAVA_HOME = $(/ usr / libexec / java_home);

echo $ JAVA_HOME