OSX 10.10和Eclipse Luna。自己的应用程序在从 Eclipse 内部启动时崩溃

2022-09-04 07:59:47

我今天已经更新到Yosemite,并且有很多java问题。大多数Java应用程序在启动时崩溃,但是在重新安装旧的Mac-Java 1.6之后,这个问题似乎得到了解决。

但我还有另一个大问题。当我启动 Eclipse Luna 并构建自己的 Java 应用程序并使用 Eclipse 中的 run 按钮启动此应用程序时,它会崩溃并显示以下报告:

dyld: lazy symbol binding failed: Symbol not found: _CGContextSetAllowsAcceleration
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Libraries/libawt.jnilib
  Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

dyld: Symbol not found: _CGContextSetAllowsAcceleration
  Referenced from: /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Libraries/libawt.jnilib
  Expected in: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices

当我将应用程序导出为.jar文件并从 eclipse 外部启动它时,一切都可以正常工作。

你有什么解决方案,我该如何解决这个问题?否则,我必须重新安装小牛队才能在明天提高工作效率。


答案 1

使用 http://support.apple.com/kb/DL1572 重新安装后系统中有两个JDK 1.6版本。

  1. /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/
  2. /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/ (1.6.0_65-b14-466.1)

1 (-462) 被 Eclipse 使用。它给出了与你相同的错误。

2 (-466) 从命令行使用。那个奏效了。

因此,我更改了Eclipse首选项中的“已安装的JRE”,使其指向数字2(-466)。在那之后,一切都很好。

/马丁


答案 2

此修复程序对我有效:

打开 /Applications/{YOUR_IDEA}/Contents/Info.plist 文件,并通过更改

<key>JVMVersion</key>
<string>1.6*</string>

<key>JVMVersion</key>
<string>1.7+</string>