Mac系统下Scala IDE启动崩溃问题求助
解决Scala IDE启动时
javax/annotation/PostConstruct找不到的问题 嘿,我来帮你搞定这个Scala IDE启动报错的麻烦!咱们先理清楚问题根源,再一步步修复。
问题核心原因
从你提供的错误日志里能明确看到java.version=12.0.2——这说明虽然你修改了eclipse.ini指定Java 8,但Scala IDE还是加载了系统默认的Java 12。毕竟Scala IDE基于旧版Eclipse(4.7),它对Java 9及以上版本兼容性很差:Java 9开始移除了javax.annotation包的默认包含,而IDE的核心依赖刚好需要这个包,所以才会报类找不到的错误。
关键修复步骤
你的eclipse.ini配置有两个小问题,调整后就能正常启动了:
- 修正
-vm参数的位置和重复项:-vm必须放在-vmargs之前,而且只能写一次(你现在写了两次,后面的会覆盖前面的,反而可能出问题) - 指定完整的Java可执行文件路径:Mac上不能只写到
bin目录,得精确到java二进制文件
修改后的eclipse.ini应该是这样的:
-startup ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.500.v20170531-1133 -vm /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin/java -vmargs -Xmx2G -Xms200m -XX:MaxPermSize=384m -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
- 验证修复效果:启动IDE后,点击
帮助 > 关于Eclipse > 安装详细信息 > 配置,检查java.version是否显示1.8.0_221,如果是就说明配置生效了。
额外验证小技巧
你可以先在终端里执行这条命令,确认Java 8的路径是正确的:
/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin/java -version
如果能输出Java 8的版本信息,说明路径没问题,否则要检查你的Java 8是否正确安装。
附:你提供的原始信息
错误日志
!SESSION 2019-09-19 13:35:58.107 ----------------------------------------------- eclipse.buildId=4.7.0-vfinal-2017-09-29T14:34:02Z-Typesafe java.version=12.0.2 java.vendor=Oracle Corporation BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_BG Framework arguments: -keyring /Users/aghan/.eclipse_keyring Command-line arguments: -os macosx -ws cocoa -arch x86_64 -keyring /Users/aghan/.eclipse_keyring !ENTRY org.eclipse.osgi 4 0 2019-09-19 13:36:04.968 !MESSAGE Application error !STACK 1 org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct ...(错误栈省略)
本地Java版本列表
macbook:libexec aghan$ ./java_home -V Matching Java Virtual Machines (3): 12.0.2, x86_64: "Java SE 12.0.2" /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home 11.0.4, x86_64: "Java SE 11.0.4" /Library/Java/JavaVirtualMachines/jdk-11.0.4.jdk/Contents/Home 1.8.0_221, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
修改后的eclipse.ini(原始错误版本)
-startup ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.library ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.500.v20170531-1133 -vm /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin -vm /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin -vmargs -Xmx2G -Xms200m -XX:MaxPermSize=384m -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
内容的提问来源于stack exchange,提问作者Adelin
相关产品推荐
相关产品推荐

