6

我有 .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
4

2 回答 2

2

使用 Mac OS X 10.8.2 和 Java 6 安装后,问题就消失了。我正在阅读有关此问题的信息,并了解到 Java 6 和 Mac OS X 10.7.4 存在一些问题。就我而言,我只是在等待在 10.8.2 上测试应用程序以检查它是否仅在 10.7.4 上产生这些错误,并且看起来这些错误仅在 10.7.4 上发生。

通过操作系统升级,问题得到解决,在这种情况下,这对我来说已经足够好。

此致。

于 2012-10-10T06:24:49.897 回答
0

我今天在 OS X 10.8.2 上遇到了这个问题,所以等待更新没有帮助。我能够通过为 OS X 重新安装 Java 来修复它。

我没有费心尝试卸载搞砸的java,我只是重新下载了它并安装了它。这是我安装的版本:

适用于 OS X 10.8 的 Java

如果您不在 10.8(Mountain Lion) 上,那么您可能需要不同的下载。它可以在同一个站点上找到。希望这可以帮助某人。

于 2012-11-18T23:53:34.563 回答