解决Android中使用jdk 9以上中的某个类(AbstractProcessor)但是无法导入的问题

news/2024/9/28 21:34:16 标签: android, java, 开发语言

前景提要

今天在使用jdk中的AbstractProcessor类的时候,怎么都找不到,网上各种搜索,加什么依赖都没用,看了下依赖确实有这个类但是就是无法正常导入
在这里插入图片描述

然后翻了下android.jar,发现没有这个类
在这里插入图片描述

疑问

但是你尝试一下发现在jdk 7/8中部分可以正常导入,这个经过和同事朋友沟通后发现可能是谷歌的限制(谷歌改了javax)+在jdk9及后续版本中,jdk开始使用模块化规则。

JDK 1.8问题解决

在网上查阅很多资料发现jdk1.8直接导入rt.jar可以解决问题(ps:借一下网友的图,省的自己截图了)
在这里插入图片描述

JDK1.8 以上问题解决

但是你会发现问题又来了,你翻了翻你的jdk 11/17/19/21等等都没有jre这个路径当然也不会有rt.jar

如何获取jdk9及以上版本中依赖包,如’rt.jar’,’ dt.jar’等

在jdk9及后续版本中,jdk开始使用模块化规则,实现更好的封装和定义良好的接口,近一步加强了java的自由度,开发者可以定制化SDK包括rt.jar在内的依赖均已移除,以模块化形式更高效的存诸在 JAVA_HOME/jmods目录下,如果需要可以用命令进行抽取,例如需要用到javax.annotation.processing.AbstractProcessor类,则可以将jmods目录下的java.compiler进行重新打包
在这里插入图片描述

javacompilerjmod_18">解压jmods目录下的java.compiler.jmod模块到当前目录

任意目录下

jmod extract "D:\Program Files\Java\jdk-17\jmods\java.compiler.jmod"

使用jar工具在当前目录创建一个新的JAR文件

注意后面有个.

jar cf java.compiler.jar -C classes .

使用命令进行验证,将会成列出jar包中所有条目

jar tf .\java.compiler.jar

在Android studio如何引用依赖包?

将jar包复制到项目的lib目录下并右键选择Add As Library,将可以正常使用jar包中的类库模块的build.gradle文件中生成如下指令,

implementation files('libs\\java.compiler.jar')

虽然可以正常使用类库,但是在构建的时候会报错此时将指令更改为

compileOnly files('libs\\java.compiler.jar')

搞定结语

感谢https://www.cnblogs.com/bingbaihanji/p/17351815.html
最后提醒一下不要把java.compiler.jar发到自己的私库然后在线引用,我尝试过依然会导致无法导入,只有以jar包导入才行,如果你成功了可以留言告诉我


http://www.niftyadmin.cn/n/5681887.html

相关文章

滚珠丝杆如何安装滚珠?

滚珠丝杆安装滚珠是一门非常专业的知识,其安装过程需要细致且精确,这样才能确保其后续运行的顺畅与稳定。以下是安装滚珠的详细步骤: 一、准备工作 确保工作区域清洁无尘,准备合适的螺丝刀、扳手等工具,以及适量的润滑…

gcc选项-fno-access-control 使用

背景&#xff1a; 在进行eigen库进行移植时&#xff0c;总是报编译错误&#xff1a; error: struct std::basic_stringbuf<_CharT, _Traits, _Alloc>::__xfer_bufptrs redeclared with different access struct __xfer_bufptrs &#xff0c;单独写一个测试程序使用eig…

物理学基础精解【30】

这里写目录标题 微分导数一、导数的定义二、导数的几何意义三、导数的计算四、导数的应用 微分的定义一、基本概念二、数学定义三、具体形式四、几何意义五、与导数的关系 可微性与连续性一、连续性的定义二、可微性的定义三、可微性与连续性的关系四、结论 反函数的导数和隐函…

基于yolov8的海上红外目标系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的海上红外目标系统是一项集成了前沿技术的创新解决方案&#xff0c;专为复杂海洋环境下的目标检测而设计。该系统利用YOLOv8深度学习模型的强大目标检测能力&#xff0c;结合红外成像技术&#xff0c;实现了对海上小型船只、浮标、甚至水下潜器等目标…

Qt 每日面试题 -5

41、单继承和多继承 单继承&#xff08;派生类只从一个直接基类继承)时派生类的定义∶ class 派生类名:继承方式 基类名 { 成员声明; } 多继承 时派生类的定义∶ class 派生类名:继承方式1 基类名1&#xff0c;继承方式2 基类名2&#xff0c;… { 成员声明; } 注意:每一个“继…

Python/大数据/机器识别毕业设计选题题目推荐

基于Python和Diango在线购物商城系统报告文档指导搭建视频 基于深度学习的人脸识别与管理系统&#xff0c;Python实现 基于Python/机器学习链家网新房数据可视化及预测系统 Python豆瓣电影情感分析推荐系统爬虫可视化&#xff0c;过滤算法 基于python的django框架生鲜商城管…

代码随想录第二十天:动态规划、斐波那契数列、爬楼梯、最小体力爬楼梯

1.动态规划理论 理论讲解链接&#xff1a;代码随想录 (programmercarl.com) 对于动态规划问题&#xff0c;可以拆解为如下五步曲 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 2.斐波那契数列 dp数组…

项目实战总结-Kafka实战应用核心要点

Kafka实战应用核心要点 一、前言二、Kafka避免重复消费2.1 消费者组机制2.2 幂等生产者2.3 事务性生产者/消费者2.4 手动提交偏移量2.5 外部存储管理偏移量2.6 去重逻辑2.7 幂等消息处理逻辑2.8 小结 三、Kafka持久化策略3.1 持久化文件3.2 segment 分段策略3.3 数据文件刷盘策…