You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改现有jar文件?使用IntelliJ IDEA修改gwt-log.jar的log4j版本并重打包

解决方案

1. 前置准备(避免依赖缺失问题)

优先从Maven中央仓库下载对应版本gwt-log的源码包(后缀为sources.jar),不要直接解压编译后的二进制jar修改,可避免反编译错误、依赖结构混乱的问题。如果坚持修改已解压的二进制jar,按以下步骤操作即可。

2. 修复IDEA依赖解析错误

  • 打开IDEA菜单栏File > Project Structure > Libraries,点击+号添加你要升级的目标log4j版本jar包,以及gwt-log运行所需的其他依赖(比如GWT核心包、servlet-api等你当前缺失的依赖包)。
  • 如果是Maven项目,可直接在pom.xml中添加对应依赖,示例配置如下:
<!-- 替换为你需要的log4j版本号 -->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.20.0</version>
</dependency>
<dependency>
    <groupId>com.allen-sauer.gwt.log</groupId>
    <artifactId>gwt-log</artifactId>
    <version>你当前使用的gwt-log版本号</version>
    <scope>provided</scope>
</dependency>
  • 依赖添加完成后等待IDEA索引更新完成,即可解决依赖报错问题。

3. 调整适配新log4j版本

找到gwt-log中调用log4j API、关联版本配置的代码,修改适配你使用的新log4j版本逻辑,比如log4j 1.x升级到2.x需要调整Logger类的引用路径、配置加载逻辑等,修改完成后确认所有代码无编译报错。

4. 重新打包生成jar文件

  • 打开File > Project Structure > Artifacts,点击+号选择JAR > From modules with dependencies。
  • 选择当前模块,gwt-log为工具类库无需设置主类,确认后调整输出jar的结构,和原始gwt-log.jar的结构保持一致,不需要把其他依赖打包进去即可。
  • 保存配置后,点击菜单栏Build > Build Artifacts > 你刚创建的Jar配置 > Build,即可在配置的输出目录获取修改完成的jar包。

补充提示:如果修改二进制class文件难度较高,建议直接fork gwt-log官方源码仓库,在源码基础上修改log4j依赖版本后自行构建,兼容性更好、操作效率更高。

内容的提问来源于stack exchange,提问作者Java

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:45:02