Intellij IDEA 插件开发 --- 一次 JVM Crash 问题的解决

虽然今天遇到的不是一个有什么技术含量的问题,但是国内做这块的人太少了,觉得还是需要多分享分享,至少可以帮助新人走一些弯路,_

前几天手贱升级了 macOS Sierra,本来看到 Intellij IDEA 在 macOS Sierra 下面只有一个触摸板异常灵活的问题,觉得自己触摸板用地比较少就直接升级了,哪知道升级以后,在开发我们自己的 Intellij IDEA 插件的时候,启动的 IDEA 一会儿就出现了 Crash 的问题(Crash 的是通过 Intellij IDEA 启动起来的用来测试插件的 Intellij IDEA)。具体的 Crash 截图如下:

Intellij IDEA 插件开发 --- 一次 JVM Crash 问题的解决_第1张图片
intellij_idea_crash.png

本来想是不是要直接回到 OS X Yosemite,但是不甘心啊,觉得既然都已经升级了,那遇到问题就解决吧,幸好在 Jetbrains 官方的问题跟踪平台上看到了有了提了类似的问题:https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FJRE-3

看这个帖子的意思是这个问题是 OpenJDK 的 Bug,于是顺藤摸瓜找到了 Jetbrains 在自己维护的 JDK 上对这个问题 Fix 的 Commit:

https://github.com/JetBrains/jdk8u_jdk/commit/02f9a5fbb4924ff67c8a04c15e490acfcc750003

如果把运行插件 SDK 的 JDK 换成 Jetbrains 自己的 JDK,应该就可以解决问题。当然,要使用 Jetbrains 自家的 JDK,不用拿着源代码自己 Build,可以直接从这里下载对应的 Build:https://bintray.com/jetbrains/intellij-jdk

下载过来以后在插件工程的「Project Structure」配置界面进行如下配置即可:

Intellij IDEA 插件开发 --- 一次 JVM Crash 问题的解决_第2张图片
  1. 将下载过来的 JDK 增加到 SDK 里面。
  2. 找到当前正在用来运行插件的插件 SDK,将其以依赖的 JDK 修改成刚刚增加的 JDK。

至此问题就已经解决,在这里建议大家如果要开发 Intellij IDEA 的插件的话,还是用 Jetbrains 自家的 JDK 比较好,毕竟 Jetbrains 已经在 OpenJDK 的基础上 Fix 了不少的问题,特别是很多和 Swing 相关的问题,使用他们的 JDK 可以帮助我们少走不少弯路。


PS:如果有人对开发工具、插件感兴趣,欢迎留言联系我,蚂蚁金服需要最优秀的工程师来做研发工具,提升工程师的效率。

你可能感兴趣的:(Intellij IDEA 插件开发 --- 一次 JVM Crash 问题的解决)