我正在为我们的IT团队testingSnow Leopard,以准备推出它。 我目前正在运行Java JDK 1.6附带的种子10A394。
我发现一个Java桌面应用程序不再在Snow Leopard下运行,应用程序甚至不会启动。 供应商build议我降级到JDK 1.5。
问题是,我已经能够find的每个Java for Mac软件包都会首先检查它是否将被安装在创build软件包时苹果所考虑的Mac OS版本上。 这个页面是一个很好的例子,有两个不同的包,但是在安装之前,每个包都明确地检查MacOS 10.4或10.5,所以在Snow Leopard上都不起作用。
一旦我安装了,我知道如何改变顺序,以便低版本是首选 – 我只是找不到任何将安装的软件包。
MacOS附带的Java版本可以追溯到1.3。 请参阅/System/Library/Frameworks/JavaVM.framework/Versions 。 唯一需要从软件包安装的时间是最新的Java比操作系统版本更新,并且出于某种原因无法使用软件更新。
应用程序的供应商应该真正承担责任,但是您可以通过编辑应用程序的.plist来解决问题。 右键单击应用程序,然后select显示包装内容,然后用文本编辑器打开Info.plist文件。 您将在该文件中看到一个Java字典和一个关键的JVMVersion 。 将值更改为1.5* (1.4+将意味着版本1.4后的任何内容,1.6 *将是1.6的任何版本)。这将使您的应用程序在Java 1.5中运行。
但是,这可能不是全部。 在Info.plist旁边,你会发现MacOS/JavaApplicationStub 。 这是启动JVM的实际MacOS X二进制文件。 开发人员可能已经发布了与该操作系统不兼容的旧版本文件。 您将在/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub上获得该文件的最新副本。 用这个replace应用程序的版本。
应用程序可能仍然无法运行,因为(例如)在启动后无法加载32位本机库作为64位。 在这种情况下,可以使用lipo命令lipo -remove x86_64 JavaApplicationStub -output JavaApplicationStub Stub的64位部分: lipo -remove x86_64 JavaApplicationStub -output JavaApplicationStub
希望这个作品。 如果是这样,一定要让应用程序的开发者知道。
如果您安装了多个Java版本,则可以在Applications / Utilities / Java中更改首选项的顺序。
安装您需要的版本,并将其设置为最佳首选版本。
试试这个链接: http : //juggernaut.haet.ru/index.php/2009/06/24/java-1-5-in-snow-leopard/