我有.jar文件,在运行时读取一个.dylib库,我在OSX中用GCC编译器编译。
应用程序在OSX 10.6.8上运行没有任何问题。
Java版:
java版“1.6.0_33”Java(TM)SE运行时环境(构建 1.6.0_33-b10-424-10M3720)Java HotSpot(TM)64位服务器VM(版本20.8-b01-424,混合模式)
GCC版本:
i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(基于Apple Inc.) build 5658)(LLVM build 2336.1.00)
我使用64位Java和libs,其中.jar需要为x86_64编译。所以,在Snow Leopard上,一切都运行良好。
我现在将我的应用程序切换到OSX 10.7.4。在那里,我尝试了两种不同的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,混合模式)
GCC版本:
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,但是没有改变。我仍然遇到Segmentation fault: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
答案 0 :(得分: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上。
通过操作系统升级,问题得到解决,在这种情况下,这对我来说是足够好的答案。
最好的问候。
答案 1 :(得分:0)
我今天在OS X 10.8.2上遇到了这个问题,所以等待更新并没有帮助。我能够通过重新安装Java for OS X来解决这个问题。
我没有打算尝试卸载乱糟糟的java,我只是重新下载它安装了它。这是我安装的版本:
如果您不在10.8(Mountain Lion),那么您可能需要另外下载。它可以在同一个站点上找到。希望这有助于某人。