当前位置: 首页 > article >正文

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

前景提要

今天在使用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进行重新打包
在这里插入图片描述

解压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.kler.cn/news/323534.html

相关文章:

  • Java中通过方法上注解实现入参校验
  • 计算机毕业设计 在线问诊系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • C++那些你不得不知道的(2)
  • .NET 控制台应用程序连接 MySQL 数据库实现增删改查
  • mysql数据库设置主从同步
  • 自动驾驶电车难题的康德式道德决策
  • 黑马头条day6-kafka及异步通知文章上下架
  • Spring 全家桶使用教程 —— 后端开发从入门到精通
  • C#——switch案例讲解
  • 计算机毕业设计 校园失物招领网站的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版
  • 【论文写作】描述一个模型比另一个模型效果好时
  • sentinel原理源码分析系列(二)-动态规则和transport
  • 如何在openEuler上安装和配置openGauss数据库
  • linux编辑文件保存退出的实操讲解
  • JVM基本了解
  • 神经网络激活函数
  • RabbitMQ 高级特性——重试机制
  • 【前端面试题】Vue 3 生命周期钩子的执行顺序详解
  • 2024年中国电子学会青少年软件编程(Python)等级考试(二级)核心考点速查卡
  • Supervisor进程管理工具安装
  • Python爬虫获取指定内容
  • django drf 统一处理操作人和时间字段
  • leetcode-238. 除自身以外数组的乘积-前n项的思想
  • 一键降重:芝士AI如何简化论文查重过程?
  • 05-成神之路_ambari_Ambari实战-013-代码生命周期-metainfo-configFiles详解
  • 【第十六章:Sentosa_DSML社区版-机器学习之生存分析】
  • sql server每天定时执行sql语句
  • 【Python快速学习笔记01】下载解释器/环境变量配置/PyCharm下载/第一个代码
  • 浅谈软件安全开发的重要性及安全开发实践