我面临着和你一样的问题。
不管我怎么努力,Java 1.6 仍然在 64 位模式下运行。
我最后的手段是考虑如何禁用二进制的 64 位功能,以便只能选择 32 位模式....
在这里回答:
关键是将 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java 替换为仅 32 位模式的二进制文件。
- 使用“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。
使用您最喜欢的工具提取 32 位模式二进制文件....(例如 dd)对我来说,我喜欢 xxd,因为它的语法更容易记住。使用“文件 java”进行验证。
备份原始的 java 二进制文件。
将“/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java”二进制文件替换为步骤 2 中提取的仅 32 位模式二进制文件。
测试!如果未显示 Java 控制台,并且没有 Java 首选项可以打开它,您可以使用 ~/Library/Caches/Java 中的 deployment.properties 文件并添加“deployment.console.startup.mode=SHOW”。