如何在 Mac OS X 上获取 JDK 1.5

2022-09-01 23:08:17

我必须为仍在运行 JDK 1.5 的旧版应用程序编写一些代码。不幸的是,看起来OS X实际上并没有安装1.5 JDK。它只是链接到1.6:

/System/Library/Frameworks/JavaVM.framework/Versions $ ls -l
lrwxr-xr-x  1 root  wheel    5 Apr 26 11:53 1.3 -> 1.3.1
drwxr-xr-x  3 root  wheel  102 Feb 11 15:33 1.3.1
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Apr 26 11:53 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel    5 Apr 26 11:53 1.6 -> 1.6.0
drwxr-xr-x  7 root  wheel  238 Apr 26 11:53 1.6.0
drwxr-xr-x  8 root  wheel  272 Apr 26 11:53 A
lrwxr-xr-x  1 root  wheel    1 Apr 26 11:53 Current -> A
lrwxr-xr-x  1 root  wheel    3 Apr 26 11:53 CurrentJDK -> 1.6

http://developer.apple.com/java/faq/ 听起来,Java是操作系统更新的一部分......我使用的是Mac OS X v10.6.3(Snow Leopard)。有没有办法在这个操作系统版本上安装实际的1.5 JDK?

或者我需要先尝试查找旧版本的 OS X 才能完成此工作?


答案 1

看看 http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard 如何在Snow Leopard上获取和安装1.4和1.5 JDK。还要记住,每当您运行软件更新并安装JDK更新时,您都需要“修复”指向1.4和1.5 JDK的符号链接。

更新:作为旁注,对于那些在OS X上使用多个JDK进行开发的人来说,看看这个方便的小实用程序,可以从命令行切换JDK:setjdk


答案 2

这里实际上有两个问题:

  1. 安装旧版本的 Java防止“软件更新”将其删除。
  2. 告诉需要旧版本的应用程序在哪里可以找到它,同时让其他所有内容都受益于最新版本。

我没有任何东西可以添加(还)关于安装旧版本的Java,但是,根据Apple Java运行时工程师Mike Swingler的这篇文章

除了Apple软件更新之外,没有人可以或应该更改/System/Library/Frameworks/JavaVM.framework中的符号链接(我们不愿意这样做,因为它不可避免地会破坏某人)

换句话说,更新操作系统链接到旧的Java副本是一种值得怀疑的做法,因为它迫使系统上的每个Java应用程序都使用旧的Java版本。

正确的方法是根据需要设置正确的 Java 版本。您可以通过执行以获取特定版本的路径来执行此操作。例如,要获取 1.5 版本的路径,请执行以下操作:JAVA_HOME/usr/libexec/java_home

/usr/libexec/java_home --version 1.5