intellij中我的jar资源文件是只读的,我需要编辑它们

时间:2016-11-19 23:16:49

标签: java intellij-idea libraries

我已经尝试了几个小时没有成功编辑我用作库的jar中的java文件。我已将资源标记为内容根和源根,但我仍然无法编辑jar中的代码。项目编译并正确运行但我需要对资源文件进行调整而不能;我已经尝试了我能想到的每个项目结构。这不可能吗?所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

不建议编辑JAR文件。从再现性 1 的角度来看,最好是:

  1. 获取库的源代码树
  2. 将其检入您的版本控件(或在Github上分叉)
  3. 修改并构建
  4. 使用生成的JAR而不是原始JAR
  5. 另一种方法是覆盖"您希望通过使用备用版本的资源创建另一个JAR并将其放在应用程序类路径中的更新来进行更改。

    但如果这些都不适合您,您可以使用jar命令修改JAR文件:

    1. 使用jar -x ...将文件解压缩到临时目录树
    2. 修改树
    3. 使用jar -c ....创建新的JAR。
    4. 显然,如果您不是原始签名者,使用原始密钥签署新JAR将是一个问题,但我怀疑这与您相关。

      1 - 关键在于,维护代码的下一个人需要知道你对你所编辑的库JAR做了什么,以及他需要和另一个人做同样的程序JAR的版本。如果你手工完成,他别无选择,只能对原始版本和编辑版本之间的差异进行法医比较。这假设仍然可以获得原始JAR。请注意"下一个人"可能是你...在几个月或几年的时间里,当你忘记你到底做了什么时。