我的jar foo.jar
包含jar foo/config/baar-temp.jar
。
将baar-temp.jar
重命名为baar.jar
的最佳方法是什么?
答案 0 :(得分:1)
实际上,jar格式基于zip,可以使用例如Java7中提供的ZipFileSystemProvider作为文件系统进行操作。这允许我们用一个内部进行相当简单的操作:
private void renameStuffInsideJar(String jarFilePath){
URI uri = URI.create("jar:file:"+jarFilePath);
try {
FileSystem jarFile = FileSystems.getFileSystem(uri)) {
Path pathInJarfile = jarFile.getPath("foo/config/baar-temp.jar");
Files.move(pathInZipfile,pathInZipfile.resolveSibling("baar.jar"));
} catch(IOException e){
//TODO
}
}
或者,如果它不是您想要的代码,您可以在首选的存档管理器中打开您的jar文件,如7zip或WinRar,然后使用它重命名。