如何在另一个jar文件中重命名jar文件?

时间:2016-10-24 15:02:40

标签: jar

我的jar foo.jar包含jar foo/config/baar-temp.jar

baar-temp.jar重命名为baar.jar的最佳方法是什么?

1 个答案:

答案 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,然后使用它重命名。