packagedemo;importjava.util.*;importjava.net.URI;importjava.nio.file.Path;importjava.nio.file.*;/**
* 更新jar最简单办法: 把jar当成文件系统 以更新jar中文件
*/publicclassJarFSUpdateDemo{publicstaticvoidmain(String[] args)throwsThrowable{Map<String,String> env =newHashMap<>();
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 fileFiles.copy( externalTxtFile,pathInZipfile,StandardCopyOption.REPLACE_EXISTING );}}}