干净地关闭JGit

时间:2015-05-25 09:00:32

标签: java jgit filehandle

我使用JGit API创建了一个本地存储库。完成所有处理后,我想删除本地仓库(这是一个简单的java.io.File)。但是File.delete()操作失败。我已经打电话了

org.eclipse.jgit.api.Git.close()
org.eclipse.jgit.lib.Repository.close()

是否需要进一步清理?

1 个答案:

答案 0 :(得分:2)

我遇到的一件事是,如果你使用Git.cloneRepository()。call(),你需要关闭返回的结果,即

    Git result = Git.cloneRepository()
            ....
            .call();

    try {
        ...
    } finally {
        result.close();
    }

另请参阅this code snippet

中的jgit-cookbook

此外,JGit中可能保持文件句柄处于打开状态的某些地方在JGit 3.5.1之后的某个时刻得到修复,请参阅this bug,因此如果您确定使用最新版本的JGit也可能有帮助仍在使用较旧的。