idea插件开发报错: ZipException opening “slf4j.jar“: zip END header not found

错误信息

复制代码
E:\idea-workspace\#idea-plugin\JSON2Object\src\main\java\com\hgy\plugin\json2object\GenerateAction.java:1: 错误: 无法访问com.hgy.plugin.json2object
package com.hgy.plugin.json2object;
^
  ZipException opening "slf4j.jar": zip END header not found

错误原因

运行时候包了这个错误, 其实"ZipException opening "slf4j.jar": zip END header not found"这个错误是由于 "无法访问com.hgy.plugin.json2object" 错误导致的, 编译时候就报了无法访问, 所以要找到无法访问的原因

经过一番分析处理发现是插件引入的idea版本问题, 可是是2021.2和jdk11有兼容性问题吧

js 复制代码
intellij {
//    version.set("2021.2") 这个版本有问题
    version.set("2022.1.4") // 升级成这个版本可以正常使用
    type.set("IC") // Target IDE Platform

    plugins.set(listOf(/* Plugin Dependencies */))
}

走的弯路

由于这里使用了com.sun.codemodel.JCodeModel特殊的类, 一直以为是com.sum.*的特殊包不能被解析, 所以各种百度google都找不到任何相关线索, 最后只能控制变量, 把所有的类全部删了, 然后弄了一个简单测试类, 编译竟然也不能通过, 此时问题就很明显了, 之前的判断是错误的, 就是插件项目依赖的组件个版本不兼容问题(jdk,gradle, intellij平台版本, intellij 插件扩展使用的版本), 最容易想到就是 intellij 插件扩展使用的版本版本问题, 升级一下, 果然解决问题

这么多年过去, 初中物理学的控制变量法依然非常受用, 但是有时候自己往往自以为是的忽略了这个最可靠有效的分析方法, 导致问题迟迟不能解决, 应该深刻反思, 不能先入为主判断, 如果此路不同, 应该停下反思, 而不是无头的到处找自己以为的答案。

相关推荐
小bo波2 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking3 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
张不才6 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
shepherd1117 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构
plainGeekDev10 小时前
单例模式 → object 声明
android·java·kotlin
用户2986985301411 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing12 小时前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯1 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户128526116021 天前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java