我是靠谱客的博主 孝顺戒指,最近开发中收集的这篇文章主要介绍Kotlin 编译出错 java.lang.ClassNotFoundException: com.sun.tools.javac.util.context,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        最近遇到一次命令行执行 gradlew checkcode时报错的问题,某个组件的Kotlin编译出错了,抛出的异常为 compileReleaseKotlin fails with java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context。

        看到 classNotfundException 第一反应是 tools.jar 包丢了,于是去检查 jdk 发现正常。用 idea 自带的 gradlew 插件执行命令正常,网上博客给出的建议是将 openJDK 换成 OracleJDK,而我的idea 用的就是 OracleJDK,而且 tools.jar 包也在 JDK 中。起初,我以为是我安装了多个版本的 jdk 导致的,但是我删的只剩一个 jdk 后,问题仍然没有解决。

        网上还有一些答案说是 idea 的 Kotlin 插件版本问题,更换插件版本后仍然没有解决该问题。

        后来,我看到了这个帖子java.lang.ClassNotFoundException: 有jar包但是找不到类-CSDN社区

        倒数第二条评论点醒了我,编译环境不代表运行环境。于是我怀疑 bash 中的 gradlew 并没有选择我配置的 OracleJDK。原来,MacOS 是自带 java 环境的,我在安装了 OracleJDK 后并没有设置环境变量,导致 gradlew 用的是 MacOS 自带的 java 环境,我猜 MacOS 自带的 java 环境应该是 OpenJDK。而 idea 中的 gradlew 用的是项目中的 OracleJDK,所以不报错。最终解决办法如下:

        (1)如果没有 OracleJDK,安装 OracleJDK。如果安装了跳过即可。

        (2)配置环境变量 ,参照Mac环境变量PATH的配置 - 简书 (jianshu.com)

最后

以上就是孝顺戒指为你收集整理的Kotlin 编译出错 java.lang.ClassNotFoundException: com.sun.tools.javac.util.context的全部内容,希望文章能够帮你解决Kotlin 编译出错 java.lang.ClassNotFoundException: com.sun.tools.javac.util.context所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部