美文网首页Intellij IDEA
Intellij IDEA 插件开发 --- 一次 JVM Cr

Intellij IDEA 插件开发 --- 一次 JVM Cr

作者: khotyn | 来源:发表于2016-09-28 22:23 被阅读732次

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

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

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」配置界面进行如下配置即可:

  1. 将下载过来的 JDK 增加到 SDK 里面。
  2. 找到当前正在用来运行插件的插件 SDK,将其以依赖的 JDK 修改成刚刚增加的 JDK。

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


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

相关文章

网友评论

  • 小六01:我开发插件的时候 经常性的 idea死了. 只要从文件夹中选择 idea必挂 不知道 你遇到过没有
    khotyn:这个没有遇到过哦,你可以分析下 IDEA 的日志。
  • 7974f6a555c0:很好奇都开发什么样的插件啊,之前开发过一个很小的插件GenerateO2O,解决繁琐的对象转换。几年前idea 插件开发的中文文档不是很多,看官网的英文非常痛苦。问下有好的资料或者文档吗?
    7974f6a555c0:@khotyn 谢谢
    khotyn:我们自己是做框架的,所以我们的插件基本上是服务于我们的框架,为框架的用户提供各种便利。目前插件开发的中文文档也不是很多,还是得看官网的英文,类似的功能可以参考 Intellij IDEA 自己的插件的源代码来做。

本文标题:Intellij IDEA 插件开发 --- 一次 JVM Cr

本文链接:https://www.haomeiwen.com/subject/wxrkyttx.html