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 );
}
}
}
Der einfachste Weg, das JAR zu aktualisieren: Verwenden Sie das JAR als Dateisystem, um die Dateien im JAR zu aktualisieren
おすすめ
転載: blog.csdn.net/hfcaoguilin/article/details/129650933
おすすめ
ランキング