更新jar最简单办法: 把jar当成文件系统 以更新jar中文件

package demo;

import java.util.*;
import java.net.URI;
import java.nio.file.Path;
import java.nio.file.*;

/**
 * 更新jar最简单办法: 把jar当成文件系统 以更新jar中文件
 */
public class JarFSUpdateDemo {
    public static void main(String [] args) throws Throwable {
        Map<String, String> env = new HashMap<>();
        env.put("create", "true");
        // locate file system by using the syntax
        // defined in java.net.JarURLConnection
//        URI uri = URI.create("jar:file:D:/xxx/user.jar");//不识别的写法
//        URI uri = URI.create("D:/xxx/user.jar");//不识别的写法
//        URI uri = URI.create("jar:file:D:\\xxx\\user.jar");//不识别的写法
        URI uri = URI.create("jar:file:/xxx/user.jar");//正确写法,由此可见如果文件在F盘,那应该先切换到F盘:"cd /d F:\"

        try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
            Path externalTxtFile = Paths.get("plugin-out.xml");
            Path pathInZipfile = zipfs.getPath("/META-INF/plugin.xml");
            // copy a file into the zip file
            Files.copy( externalTxtFile,pathInZipfile,
                    StandardCopyOption.REPLACE_EXISTING );
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值