gpt4 book ai didi

ant错误无法将旧文件重命名为临时文件

转载 作者:行者123 更新时间:2023-12-04 11:45:25 25 4
gpt4 key购买 nike

我正在使用 ant 1.8.0 和 java 1.6.0.17,但遇到了一个奇怪的问题。

在我的 build.xml 中,我有一个简单的任务来编译代码

<javac destdir="${dir.build.classes}" debug="on">
<classpath refid="classpath"/>
<src path="${dir.src.java}"/>
</javac>

在“类路径”中有一个 jar,叫它 library.jar
在后面的任务中,我需要给 library.jar 添加几个类,我喜欢这个
<jar destfile="library.jar" update="true" duplicate="fail">
<fileset dir="${dir.build.classes}">
<include name="some/class/files"/>
</fileset>
</jar>

这将因错误而失败 Unable to rename old file (library.jar) to temporary file
我在 javac 调用之前和之后都卡在了对 handle.exe 的调用中,我可以确认运行 ant 的 java 进程在 javac 调用期间抓取了 library.jar 的文件句柄,并且它没有放弃。这导致我后来尝试更新 jar 失败。

即使在 javac 任务完成后,为什么 ant 仍会在类路径中打开 jar 的句柄?

最佳答案

所以我找到了答案,经过一些实验。通过添加 fork="true"到我的 javac任务,文件句柄在任务结束时关闭。这允许我的 jar 修改在构建的后期成功。

不过很不幸,因为我必须记住将其添加到每个上游 javac 任务中。

关于ant错误无法将旧文件重命名为临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com