我想修改jar里面的文件.是否有可能在我的应用程序中不提取和重新震动的情况下执行此操作?
我想修改的文件是配置文件,主要是基于xml的.
我不感兴趣的原因是应用程序用launch4j包装,如果我解开它我不能再次创建.exe文件.
您可以使用该u
选项jar
来自Java教程:
jar uf jar-file input-file(s)
"存档中已存在的文件与添加的文件具有相同的路径名将被覆盖."
请参阅更新JAR文件.
比整个罐子重新制作要好得多.从你的程序中调用它听起来也是可能的.尝试在Java中运行命令行
你可以使用Vim:
vim my.jar
unzip
根据您的环境,Vim能够编辑压缩文本文件.
Java jar文件的格式与zip文件的格式相同 - 因此,如果您有一个可以修改存档的zip文件实用程序,那么您就可以了.第二个问题是,如果你想重新编译一个类或者什么东西,你可能只需要重新构建jar; 但是应该很容易修改文本文件或其他东西(例如xml).
正如许多人所说,如果不重新安装JAR,就无法更改JAR中的文件.使用Launch4J更糟糕的是,一旦更改了JAR,就必须重建EXE.所以不要走这条路.
将配置文件放在JAR中通常是个坏主意.这是我的建议.在某些预定位置搜索配置文件(如主目录,\ Program Files\etc).如果找到配置文件,请使用它.否则,使用JAR中的那个作为后备.如果这样做,您只需要在预先确定的位置编写配置文件,程序就会将其取出.
此方法的另一个好处是,如果升级软件,修改后的配置文件不会被覆盖.