我有 .jar 文件,它在运行时读取我在 OSX 中使用 GCC 编译器编译的一个 .dylib 库。
应用程序在 OSX 10.6.8 上运行没有任何问题。
爪哇版:
java 版本“1.6.0_33”Java(TM) SE 运行时环境(内部版本 1.6.0_33-b10-424-10M3720)Java HotSpot(TM) 64 位服务器 VM(内部版本 20.8-b01-424,混合模式)
海合会版本:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.1.00)
我使用 64 位 Java 和 .jar 需要的库,这些库是为 x86_64 编译的。因此,在 Snow Leopard 上,一切运行良好。
我现在将我的应用程序切换到 OSX 10.7.4。在那里我尝试了 2 个不同的 Java 版本:
第一个 Java 版本(与 Snow Leopard 相同):
java 版本“1.6.0_33”Java(TM) SE 运行时环境(内部版本 1.6.0_33-b10-424-10M3720)Java HotSpot(TM) 64 位服务器 VM(内部版本 20.8-b01-424,混合模式)
第二个 Java 版本(今天更新):
java 版本“1.6.0_35”Java(TM) SE 运行时环境(构建 1.6.0_35-b10-428-11M3811)Java HotSpot(TM) 64 位服务器 VM(构建 20.10-b01-428,混合模式)
海合会版本:
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.9.00)
我首先尝试使用在 Snow Leopard 上编译的 .dylib 运行应用程序,但出现此错误:
位置 0x0 的无效内存访问 rip=0x7fff894aa697 分段错误:11
还有没有导致应用程序崩溃的新行,但它们没有显示在 Snow Leopard 上:
java[1366] <Error>: CGContextGetCTM: invalid context 0x0
java[1366] <Error>: CGContextSetBaseCTM: invalid context 0x0
java[1366] <Error>: CGContextGetCTM: invalid context 0x0
java[1366] <Error>: CGContextSetBaseCTM: invalid context 0x0
在这次崩溃之后,我尝试在 Lion 上使用 GCC 重新编译依赖项 .dylib,但这并没有改变。我仍然收到分段错误:11 错误。
我在网上读到过这个错误,据我所知,它经常出现在 Lion 上,因为 Java 更新可能搞砸了一些东西,但由于我对 Java 不太熟悉 - 有没有人遇到过这些问题,如果是,有没有办法解决这个问题?
非常感谢。
[编辑 #1:在 OSX 10.7.4 上尝试使用 Java 7]
使用 Java 7 运行 .jar 时,再次发生崩溃,这是错误报告:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fff894aa697, pid=1471, tid=31503
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [CoreFoundation+0x2a697] CFSetGetValue+0x17
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/username/Desktop/executable/hs_err_pid1471.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Abort trap: 6