java实现:对jar包中的配置文件修改

本文介绍如何使用Java编程语言实现对已打包jar文件中的配置文件进行修改,注意操作会清除除配置文件外的其他内容。
摘要由CSDN通过智能技术生成

注:只修改文件,其他会被清空 

package com.mtpc.admin.util;

import java.io.*;
import java.util.*;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;


public class JarUtil {


    /**
     * jarPath: jar包所在路径
     * jarFilePath: jar中想要修改文件所在的路径
     * map: 要修改的内容
     */
    public static void main(String agrs[]) throws IOException {
       JarUtil jarUtil=new JarUtil();
       Map map=new HashMap();
       map.put("url","moTooling111");
       map.put("username","cl");
       map.put("password","321123");
       jarUtil.change("H:\\mtpcbootPrivate\\target\\mtpc.jar","H:\\mtpcbootPrivate\\target\\mtpc.jar\\BOOT-INF\\classes\\application.yml",map);
    }

    /**
     *
     * @param jarPath
     * @param jarFilePath
     * @param map 修改的内容
     * @return
     * @throws IOException
     */
    public JarUtil change(String jarPath, String jarFilePath, Map map)
            throws IOException {

        if (jarPath != null && jarFilePath != null && map != null) {
            File file = new File(jarPath);
            JarFile jarFile = new JarFile(file);// 通过jar包的路径 创建 jar包实例
            JarEntry entry = jarFile
                    .getJarEntry("BOOT-INF/classes/application.yml");// 通过某个文件在jar包中的位置来获取这个文件

            InputStream input = jarFile.getInputStream(entry); // 创建该文件输入流

            List<JarEntry> lists = new LinkedList<>();
            for (Enumeration<JarEntry> entrys = jarFile.entries(); entrys.hasMoreElements();) {
                JarEntry jarEntry = entrys.nextEleme
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值