如何在Snow Leopard上安装Java JDK 7


69

我的Mac当前正在运行Snow Leopard(10.6.8),我想使用Java 7进行开发。我从Oracle网站下载了Java 7 OS X安装程序,并开始运行它。不幸的是,我立即收到一条消息,说仅OS X Lion(10.7.3)支持安装程序。有什么方法可以通过Snow Leopard在计算机上安装Java 7?我不是为了升级Java而购买新的操作系统。我在周围搜索了一些,但没有找到太多。我希望可以在这里找到帮助。谢谢。


在我尝试将JDK添加到IDEA IDE之前,我不知道这是行不通的。
anizzomc

我认为小牛的升级现在可能是免费的?
David Mann 2014年

2
@DavidMann小牛的成本不是问题。我在同一条船上。我将Mavericks(全新安装)放在我的2009 MBP上,它像肉汁一样通过Capri Sun吸管运行。而且我没有看到真正的好处。我的MBP使用量的99%用于Java / Arduino开发和YouTube。荒谬的是,我们不得不购买另一个MBP或削弱我们的“仍然很好”的MBP,只是为了运行Java的MORE SECURE版本。苹果公司感到羞耻,甲骨文公司感到羞耻。
cbmeeks

绝对同意,安装膨胀的操作系统以打动女朋友并取代极简,快速,坚如磐石的Snow Leopard的意义何在?
rupps

Answers:


42

使用http://www.charlessoft.com/上的Pacifist在您从http://www.oracle.com下载的“ jdk7-7uX-macosx-x64.dmg”文件中打开并安装“ JDK 7 Update X.pkg” 。 .com / technetwork / java / javase / downloads / index.html


2
嗨,我也按照您的程序进行操作,但是看来Maven(至少3.0.4和3.0.5)不起作用。我确实收到“ java.lang.AssertionError:平台未被识别”。我是唯一面对这个问题的人吗?
fbiville

1
@Rolf是否设置了JAVA_HOME变量?在我的配置中,我为命令行参数设置了以下内容JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home。另外,您可能有兴趣看看以下程序/usr/libexec/java_home
2013年

但是我下载的JDK中没有捆绑。当前的java_home指向JDK v6中捆绑的那个。
fbiville

2
那么,使用这种方法是否意味着该/usr/libexec/java_home程序不会反映新安装的JDK7软件包?我已经在另一台具有OS X 10.9的(较新的)Mac上安装了JDK7,在安装该软件包之后,再/usr/libexec/java_home指向它。但是通过Pacifist安装它不是这种情况吗?
杰夫·埃文斯

3
我在为Snow Leopard Mac安装Java 7时遇到了相同的问题。已安装Pacifist,并通过pacifist安装了Java程序包。然后通过Java Preferences.app将Java层次结构重新排序,以将Java 7作为最高优先级。
拉明2014年

24

据我了解,JDK 7不需要10.7+,因此我只是.pkg使用PackageMaker(一种Xcode工具)打开了附带的安装程序文件,并删除了OS版本要求并重新构建了它。

由于必须保存更改,因此您需要从.dmg文件中复制安装程序。
编辑:由于已安装的.dmg是只读的,因此您需要构建到另一个目录。

到目前为止,即使使用Java首选项窗格,我也没有遇到任何问题。

有一点要注意,你不得不重新排序的JDK中Java Preferences.app去使用新的JDK而不是Java 6的方案。


我什至将Java 7.jdk捆绑包复制到/System/Library/Java/JavaVirtualMachines/,甚至看起来正常。

只是不要在Java应用程序运行时移动/重命名JDK包;不是说我是偶然地做的...


我几乎成功地执行了步骤,但未找到Symbol:JavaNativeFoundation中的_JNFRunLoopDidStartNotification。可能是在我的mac升级期间出了点问题,显然是在10.6.5中添加了_JNFRunLoopDidStartNotification,而我在10.6.8上,但是本机绑定没有该符号,因此冒着很大的风险,我从10.7.3和7.0.0中选择了JavaNativeFoundation。有用!
avalez

@avalez很好,到目前为止,我只知道它对我有用。您正在做什么以获取“找不到符号”?
霍肯

我已经开始tomcat了。尽管我以某种方式解决了问题,但首先从Lion复制了文件,但小程序使Firefox崩溃了,然后为Snow Leopard安装了所有更新(不确定是否也更新了文件),此后没有问题。
2013年

1
我发现这篇文章提到只要不使用AWT(即窗口应用程序),JDK 7就可以正常工作。
alexandroid

@alexandroid嗯,我确定在某个时候我将AWT与JDK 7一起使用了。我完全没有看到任何问题,但是,里程数可能会有所不同。
霍肯

9

我遇到了同样的问题,无法通过Google搜索正确的方法。最后,我自己提出了解决方案,并将其放在我的博客中:

http://jksha.blogspot.se/2013/09/java-7-and-snow-leopard-osx-106.html


这不适用于常规。我使用这种方法安装了jdk 7,运行时出现错误groovysh。当我切换回JDK 6的误差消失
JBT

这种“伪装操作系统临时版本”比弄乱重新打包pkg文件要容易得多。
格雷格·多姆扬

这个答案为我工作,而其他的答案(使用和平主义者或类似)没有......与和平主义者,而我可以从终端运行java7,我无法获得Eclipse或实用程序/ Java的\首承认它
jackkamm

这对我在10.6.8上安装JRE无效。它说已经安装了,但是现在我的/ Library / Java / JavaVirtualMachines /目录是空的,当我在终端中键入“ java”时,它说“无法找到要调用的Java运行时”。不知道如何解决它……
phreakhead 2015年

@NiksaJakovljevic我无权临时更改文件SystemVersion.plist。我该怎么办?
卡洛

6

@reukiodo的答案肯定是正确的方法,所以谢谢大家!但是,对于像我这样的新手,可能需要进一步解释。

  1. 下载@reukiodo发布链接的两个DMG。
  2. 安装Pacifist。
  3. 用pacifist打开java-DMG。
  4. 在“包装内容”选项卡(默认选项卡)中,选择“ JDK 7 Update XX.pkg的内容”(XX例如为51)
  5. 单击“安装”按钮,然后按照屏幕上的说明进行操作。
  6. 在您的Utilities文件夹中打开Java Preferences.app,然后将Java SE 7拖到“常规”选项卡(默认选项卡)中Java版本列表的顶部。
  7. (可选:使用Eclipse:按照Heath Borders步骤回答另一个但类似的问题。注意!这实际上适用于OSX 10.7 Lion,但该过程仍然适用,并且在10.6.8 Snow Leopard上对我有效。)

2
我打开第六步,打开Java Preferences.app的常规选项卡时找不到Java7。我遗漏了什么吗,还是因为这是Java 7 update 60?:-/
MTA

2

有两种方法可以做到这一点。

  1. 从charlessoft.com下载Pacifist并在其中打开JDK PKG(并解压缩应用程序。)
  2. 在PackageMaker(开发人员工具)中打开PKG,并删除10.7.3的要求。

祝好运!


2
通过不(严重)复制两个现有答案可以改善此答案。
SevenSidedDie 2013年

2

我可以从该项目的一些补丁中为雪豹编译openJDK 7(完全起作用,包括AWT):https :
//github.com/hgomez/obuildfactory/

如果您想让我的二进制文件更轻松一点,请访问以下网址https :
//bintray.com/wyatt8740/generic/openjdk7-sdk-osx-10.6/20140622/view

压缩包约为57兆字节。

将其提取/Library/Java/JavaVirtualMachines/。JDK将位于名为的目录中jdk1.7.0.jdk。将您的JAVA_HOME环境变量设置为/Library/Java/JavaVirtualMachines/jdk1.7.0.jdk/Contents/Home,然后从中输入用于设置JAVA_HOME的命令~/.profile以使其更持久。注销并使其完全生效。到目前为止,唯一缺少的是JDK 7浏览器插件。

您还可以使用“ Java首选项”应用程序(可以在Spotlight搜索中找到)将其设置为通过GUI访问时的默认值。

不幸的是,我暂时无法访问OS X以尝试使Java 1.8正常工作,因此1.7可能是10.6的终结。


1
您是否介意我重新分发您的二进制文件以在旧版OSX中使用我的应用程序Jubler?
Panayotis

@Panayotis前进!出于好奇,有多少人?(无论有多少,答案仍然是“继续前进,没有问题”-我只是好奇我已经帮助了多少人!)
Wyatt8740 17-10-28

@Panayotis-顺便说一句,我在您的页面上看到您拼错了我的名字的情况。(jubler.org/osx_sl.html
Wyatt8740

1
哦,对不起,已修复!我还不知道,只是上传了它。但是我知道有很多人拥有无法升级的旧硬件(感谢Apple)。到目前为止,我必须创建该软件的两个发行版,但现在只能创建一个。
Panayotis

@Panayotis告诉我。我有一个2006年的Intel 64位imac,它不能超过10.7并保持图形加速。它现在运行Debian linux(由于无法再购买10.7,因此使用OS X 10.6进行双重引导)。也是Powerbook G4(也可以运行Debian)。苹果是过时硬件之王。谢谢!
Wyatt8740

1

您可以构建自己的一个。我以前做过 很容易。它是您可能得到的官方资料:

https://wikis.oracle.com/display/OpenJDK/Mac+OS+X+Port


也就是说,最低的操作系统版本是OS X 10.7.3。您实际上是用10.6.x构建的吗?
dnc253

可能是我用10.7.x构建的。大概。但是他们说:“ ...它应该继续在Mac OS X 10.6 Update 6的10.6.8 + Java上运行,但是不能保证...”试试吧!


0

您想要的不是不是不可能的,但肯定不会被推荐,但是...一旦确定您想要的,这是安装Java(或与操作系统相关的任何软件)的简便方法:-导航至您MainHD / System / Library / CoreServices / SystemVersion.plist-备份此文件!-在文本编辑器中打开它并更改产品版本:

    <key>ProductUserVisibleVersion</key>
<string>10.6.8</string>
<key>ProductVersion</key>
<string>10.6.8</string>

根据您的需要。

警告: 武士在做出任何决定前要先呼吸7次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.