【问题标题】:How to enable 32 bit Java in safari on Mac OS X 10.8 [Mountain Lion]如何在 Mac OS X 10.8 的 Safari 中启用 32 位 Java [Mountain Lion]
【发布时间】:2013-07-01 05:36:48
【问题描述】:

我已在 Mac OS X 10.8 上启用 Apple 提供的 Java 6。它工作正常,但唯一的问题是我需要运行的小程序只能在 32 位 Java 插件上运行。我无法在 32 到 64 之间选择 Java 首选项,反之亦然。我还尝试在 32 模式下运行 safari 和 firefox,但没有帮助。

我想通过使用 -d32 开关让它在终端中工作。但是,如何在 safari 中使用此开关,我不确定。

编辑:请注意,我已经苹果提供了 Java 6。我只需要在 safari 或 firefox 中启用 32 位插件。

【问题讨论】:

    标签: java macos safari osx-lion


    【解决方案1】:

    据我所知,Apple 进行了更新以禁用 Java 插件并从 Utilities 文件夹中删除 Java Preferences.app。您可能需要重新启用 Java 插件。

    由于 Java 7 仅运行 64 位应用程序,您唯一的解决方案是按照 Apple 编写的这些步骤重新安装 Java 6:

    http://support.apple.com/kb/HT5559?viewlocale=en_US

    编辑: 或者,尝试在 32 位模式下运行 Safari:steps here.

    【讨论】:

    • 我已经回复说 Apple 的 Java 6 已经启用,但它也在 Safari 上加载 Java 64 位。
    • 好的,但是您说您启用了它,我认为全新安装会对您有所帮助。否则,尝试在 32 位模式下运行 Safari,按照这些步骤(不要担心 Safari 5.0 的事情,步骤与实际版本相同)kb.dynamsoft.com/questions/666/…
    • 感谢您的回复。但是,如果您仔细阅读上面的内容,我已经写过我在 32 位模式下尝试了 safari 和 firefox,但没有任何帮助。我需要一些真正的帮助:)
    【解决方案2】:

    我和你面临同样的问题。

    无论我怎么努力,Java 1.6 仍然在 64 位模式下运行。

    我最后的手段是考虑如何禁用二进制的 64 位功能,以便只能选择 32 位模式....

    在这里回答:

    关键是将 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java 替换为仅 32 位模式的二进制文件。

    1. 使用“xxd -g1 java | grep -E 'c.fa'”查找二进制标头。
    xxd -g1 java | grep -E'c。 F A' 0001000: ce fa ed fe 07 00 00 00 03 00 00 00 02 00 00 00 000c4b0:01 28 6f d8 ce 3b 3a b0 c9 cd fa 87 b1 35 df 08 000d000:cf fa ed fe 07 00 00 01 03 00 00 80 02 00 00 00 000f060: 00 0f 84 c7 fa ff ff 48 8d 3d 96 39 00 00 是 01

    07 00 00 00 是 32 位的。 1

    所以 32 位二进制从 0x1000 开始,到 0xd000 结束,长度为 0xc000。

    1. 使用您最喜欢的工具提取 32 位模式二进制文件....(例如 dd)我喜欢 xxd,因为它的语法更容易记住。使用“file java”进行验证。

    2. 备份原java二进制文件。

    3. 将“/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java”二进制文件替换为步骤 2 中提取的仅限 32 位模式的二进制文件。

    4. 测试!如果未显示 Java 控制台,并且没有 Java 偏好来打开它,您可以使用 ~/Library/Caches/Java 中的 deployment.properties 文件并添加“deployment.console.startup.mode=SHOW”。

    【讨论】:

    • 好的,我已经成功调用了一个 32 位 Java 插件。
    • 使用 OSX lipo 工具提取 32 位 Java 而不是切割二进制文件。 ss64.com/osx/lipo.html
    • 很好的答案,对我很有帮助。在下面的答案中查看我的解决方案,也许它更容易并且对您有用
    【解决方案3】:

    您可以将参数-d32直接传递到applet param标签中。

    <applet> <params name="java_arguments" value="-d32" /> ... </applet>

    注意必须是applet的第一个参数。 仅适用于 java 1.6,因为 1.7 和 1.8 在 mac os 上没有 32 位版本。 使用 OS X 10.8.3 通过 safari、chrome 和 firefox 进行测试

    【讨论】:

    • 谢谢西蒙娜。我记得我看过这个,但不记得它是否适用于我的测试平台。看来我的最终决定是升级 Java 小程序,以便不再需要 Java 1.6。
    猜你喜欢
    • 2012-10-13
    • 2012-08-18
    • 2012-10-15
    • 2013-06-17
    • 2012-07-25
    • 2012-07-12
    • 1970-01-01
    • 2012-07-25
    • 2012-08-01
    相关资源
    最近更新 更多