修改jar中的文件

Ham*_*aya 79 java jar

我想修改jar里面的文件.是否有可能在我的应用程序中不提取和重新震动的情况下执行此操作?

我想修改的文件是配置文件,主要是基于xml的.

我不感兴趣的原因是应用程序用launch4j包装,如果我解开它我不能再次创建.exe文件.

clw*_*isk 77

您可以使用该u选项jar

来自Java教程:

jar uf jar-file input-file(s)
Run Code Online (Sandbox Code Playgroud)

"存档中已存在的文件与添加的文件具有相同的路径名将被覆盖."

请参阅更新JAR文件.

比整个罐子重新制作要好得多.从你的程序中调用它听起来也是可能的.尝试在Java中运行命令行


Jos*_*ban 22

你可以使用Vim:

vim my.jar

unzip根据您的环境,Vim能够编辑压缩文本文件.

  • 这很棒.导航到您要查找的文件,然后按Enter键.编辑文件,然后输入:wq保存! (3认同)
  • 此外,您的环境中还需要“zip”,以便能够保存更改。感谢你的回答! (2认同)

Jus*_*eff 10

Java jar文件的格式与zip文件的格式相同 - 因此,如果您有一个可以修改存档的zip文件实用程序,那么您就可以了.第二个问题是,如果你想重新编译一个类或者什么东西,你可能只需要重新构建jar; 但是应该很容易修改文本文件或其他东西(例如xml).


ZZ *_*der 8

正如许多人所说,如果不重新安装JAR,就无法更改JAR中的文件.使用Launch4J更糟糕的是,一旦更改了JAR,就必须重建EXE.所以不要走这条路.

将配置文件放在JAR中通常是个坏主意.这是我的建议.在某些预定位置搜索配置文件(如主目录,\ Program Files\etc).如果找到配置文件,请使用它.否则,使用JAR中的那个作为后备.如果这样做,您只需要在预先确定的位置编写配置文件,程序就会将其取出.

此方法的另一个好处是,如果升级软件,修改后的配置文件不会被覆盖.


Buv*_*era 5

不确定这是否有帮助,但您可以在不解压的情况下进行编辑:

  1. 从 vi 编辑器打开 jar 文件
  2. 从列表中选择您要编辑的文件
  3. 按 Enter 键打开文件,进行更改并保存非常简单

查看博客文章了解更多详细信息 http://vinurip.blogspot.com/2015/04/how-to-edit-contents-of-jar-file-on-mac.html


小智 5

我有类似的问题,我需要修改/更新 jar 文件内的 xml 文件。

jar 文件由 Spring-boot 应用程序创建,文件位置为BOOT-INF/classes/properties

我正在引用该文档并尝试使用以下命令替换/更新该文件:

jar uf myapp.jar BOOT-INF/classes/properties/test.xml

但这样一来,它就不会更改给定位置的文件。我也尝试了所有选项,但都不起作用。

注意:我从 jar 文件所在的位置执行命令。

我找到的解决方案是:

  1. 从 jar 文件的当前位置,我创建了文件夹BOOT-INF/classes/properties
  2. 将 test.xml 文件复制到 BOOT-INF/classes/properties 位置。
  3. 再次运行相同的命令。jar uf myapp.jar BOOT-INF/classes/properties/test.xml

jar 文件中的 xml 文件已更改。

基本上,您需要创建一个文件夹结构,例如文件在 jar 文件中的位置。将文件复制到该位置,然后执行命令。

该文档的问题在于,它没有足够的示例以及常见场景的解释。