文档章节

修改jar包中的配置文件

独钓渔
 独钓渔
发布于 2017/05/20 23:17
字数 757
阅读 1166
收藏 2

修改jar包中的配置文件

jar包其本质是个zip格式压缩包,加主启动类。

1、解包至当前目录tmp子目录下 
2、进入子目录 
3、修改配置文件 
4、内部jar文件逐个修改配置:流程相同(解包至tmp子目录、修改配置文件、打包、移除tmp子目录) 
5、打包至原jar文件 
6、返回上级目录,删除tmp子目录

jarfile="test.jar"
unzip -x "$jarfile" -d "${jarfile}.tmp"  # 解压至临时子目录
cd "${jarfile}.tmp"

# modify config

zip -ru "../$jarfile" *  # 在临时子目录中更新jar文件
cd ../
rm -rf "${jarfile}.tmp

#test.jar
unzip -x test.jar -d test.jar.tmp
cd test.jar.tmp
vim xxx.properties
zip -ru "../test.jar" *

 

使用jar工具修改

# 解出内部jar包
jar tf 外部jar包文件.jar                    # 列出文件清单
jar xf 外部jar包文件.jar 内部jar包.jar      # 解出jar包中需修改的指定文件

# 解出需修改文件
jar tf 内部jar包.jar                       # 列内部jar包的文件清单
jar xf 内部jar包.jar white_list.properties # 解出内部jar包的根路径的指定文件
jar xf 内部jar包.jar conf/hbase.conf       # 解出内部jar包子路径下的指定文件

# 编辑配置文件
vim white_list.properties                  # 编辑解出的配置文件
vim conf/hbase.conf                        # 编辑解出的子路径下的文件

# 更新配置文件到内部jar包
jar uf 内部jar包.jar white_list.properties # 更新配置文件到内部jar包
jar uf 内部jar包.jar conf/hbase.conf       # 更新子路径下的配置文件到内部jar包

# 更新内部jar包到外部jar包文件
jar uf 外部jar包文件.jar 内部jar包.jar     # 更新内部jar包到jar文件

# 删除临时文件
rm -f white_list.properties
rm -rf conf/hbase.conf
rm -f 内部jar包.jar

 

jar命令的用法

jar命令的用法:

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files … 
选项包括: 
-c 创建新的归档文件 
-t 列出归档目录 
-x 从档案中提取指定的 (或所有) 文件 
-u 更新现有的归档文件 
-v 在标准输出中生成详细输出 
-f 指定归档文件名 
-m 包含指定清单文件中的清单信息 
-e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点 
-0 仅存储; 不使用情况任何 ZIP 压缩 
-M 不创建条目的清单文件 
-i 为指定的 jar 文件生成索引信息 
-C 更改为指定的目录并包含其中的文件 
如果有任何目录文件, 则对其进行递归处理。 
清单文件名, 归档文件名和入口点名称的指定顺序 
与 ‘m’, ‘f’ 和 ‘e’ 标记的指定顺序相同。

示例 1: 将两个类文件归档到一个名为 classes.jar 的归档文件中: 
jar cvf classes.jar Foo.class Bar.class 
示例 2: 使用现有的清单文件 ‘mymanifest’ 并将 foo/ 目录中的所有文件归档到 ‘classes.jar’ 中: 
jar cvfm classes.jar mymanifest -C foo/ .

 

转自:http://blog.csdn.net/young_kim1/article/details/50482398

本文转载自:http://blog.csdn.net/young_kim1/article/details/50482398

独钓渔
粉丝 48
博文 408
码字总数 157886
作品 0
沙坪坝
系统管理员
私信 提问
如何读取jar包外的properties文件和log4j.properties

时间有限,不做排版和具体讲述问题产生的过程,下面是我的解决方案,已证实有效,其中Log4jP = "log4j.properties" private void initLog4jProperties() { //未打包时读取配置 String file ...

Carl_
2015/09/17
1K
0
Morven/fount4j-generator

Fount4j Generator Fount4j Generator 是使用 Java 语言编写的,基于 Beetl 模板引擎的数据库反向工程项目。内置 MyBatis 的 Entity、Dao、Mapper 文件模板。 特点 生成的文件中增加了自定义...

Morven
2016/12/24
0
0
2.使用jodd 操作mysql数据库

接着上一个博客 新建class类JDBC.JAVA 由于操纵mysql数据库需要第三方的jar包,而为了jar包依赖管理,现在将项目转换为maven项目。 现在的项目的图标是这样子的 使用默认选项 新的项目结构 ...

夜风飘尘
2016/08/18
140
0
后台管理系统 icec v1.1 发布,完善打包部署脚本

icec 有段时间没有在oschina上面更新了,但作者在实际项目中一直在使用和完善。 功能更新日志: 增加定时任务配置(quartz实现) 整合activiti工作流(在线配置流程) 系统基本信息配置(系统...

xxjin
2018/06/13
2.7K
5
Java 应用启动器--JLauncher

JLauncher提供一种简单的方式去启动一个Java App程序,免去将Java打包成独立的Run Jar包,方便在部署过程中对配置文件的灵活修改,以及实现轻量级对App程序依赖Jar包的更新。 程序支持默认存...

TavenLi
2014/04/08
673
0

没有更多内容

加载失败,请刷新页面

加载更多

灵光一闪来个科普贴:Linux文件系统

在计算机系统中,各种需要保存的信息都是以文件的形式存在的。文件管理是对系统信息资源的管理,是操作系统的一项重要功能。 1.文件与文件系统: 1.1文件: 文件是具有名字的一组相关信息的有...

Linux就该这么学
29分钟前
4
0
ExtJS 4.2 评分组件

本文转载于:专业的前端网站➸ExtJS 4.2 评分组件 上一文章是扩展ExtJS自带的Date组件。在这里将创建一个评分组件。 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2...

前端老手
33分钟前
4
0
如何为视频添加封面?

一个好的视频封面可以吸引观众的眼球,从而起到事半功倍的宣传效果,但是很多小伙伴并不知道怎么给视频添加封面。下面分享一个制作封面否方法,操作起来也比较简单的,有兴趣的小伙伴请接着往...

白米稀饭2019
43分钟前
4
0
如何使用soapUI模拟webservice客户端发送请求

参考资料 https://jingyan.baidu.com/article/cbcede0712849a02f40b4d88.html 左边是请求参数,可以自己填写!按着那个绿色三角箭头可以模拟发送请求,右边是返回的报文 soapui如何发送xml格...

故久呵呵
今天
6
0
Java Security 介绍

1.介绍 Java平台设计的重点是安全性。在其核心,java语言本身是类型安全的并且提供了垃圾自动回收,这使其增加了应用程序代码的健壮性。安全的类加载以及验证机制确保了只有合法的代码才能够...

lixiaobao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部