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

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

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

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启动时eveything工作正常。

你有什么解决方法我可以解决这个问题吗? 否则我必须重新安装小牛明天才能提高效率。

在我使用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.0.0_65-b14-466.1)

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

从命令行使用2(-466)。 那个工作了。

所以我在Eclipse首选项中更改了“Installed JREs”,因此它指向了数字2(-466)。 之后一切正常。

/马丁

这个修复对我有用:

打开你的/Applications/{YOUR_IDEA}/Contents/Info.plist文件并通过更改指向更新的java

 JVMVersion 1.6* 

 JVMVersion 1.7+ 

我遇到过同样的问题。 从http://support.apple.com/kb/DL1572重新安装java

之后它对我有用。

对于未来的用户:我在netbeans和webstorm上遇到了这个问题。 正如其他人所说

  1. 将jdk更新为http://support.apple.com/kb/DL1572
  2. 并通过添加(修改现有)以下内容更新“〜/ .bash_profile”文件以指向新的(更新的!)jdk 6位置:
 export PATH=$PATH:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home 

netbean用户的额外注意事项:如果您之前已覆盖它,请确保“/ Applications / NetBeans / NetBeans 7.3.1.app/Contents/Resources/NetBeans/etc/netbeans.conf”文件指向正确的jdk home:

netbeans_jdkhome = “/系统/资源库/框架/ JavaVM.framework /版本/ 1.6.0 /主页”

当我的mac崩溃并被替换(保留硬盘驱动器)时,我的Eclipse有一些问题需要解决。 其中我的一些项目指的是1.6,实际上我已经更新到1.7并且项目需要刷新此设置。

右键单击项目 – >属性 – > Java构建路径 – >库 – >添加库 – > JRE系统库

系统将找到已安装的JRE并将其设为默认值。 删除旧的JRE并运行该应用程序。