2008-09-16 50 views
14

我有一個螞蟻構建,使目錄,調用javac和所有常規的東西。我遇到的問題是,當我嘗試執行清理(刪除所有生成的東西)時,刪除任務報告無法刪除某些文件。當我嘗試手動刪除它時,它工作得很好。這些文件顯然沒有被其他進程打開,但是螞蟻仍然無法刪除它們。我能做什麼?螞蟻是不能夠刪除窗口上的一些文件

+0

你正在使用什麼Ant版本? – Sergey 2012-03-05 12:48:22

+1

當螞蟻試圖從之前的任務中刪除它們時,它們仍然可以打開 – 2012-08-20 06:25:08

回答

12

我遇到了這個問題一次。 這是因爲我試圖刪除的文件是另一項任務的類路徑的一部分。

2

如果您的構建運行作爲當前登錄的用戶你不說。如果沒有,Explorer.exe或其他進程顯示目錄的事實也會導致它被鎖定。但在同一個explorer.exe進程中刪除它會成功。嘗試從http://ccollomb.free.fr/unlocker/ Unlocker查看哪些進程已鎖定文件/目錄。

1

是否有從持有該文件(或目錄)打開Ant過程的東西嗎?這會導致在運行ant之後刪除它們的情況,但不會在這期間。

8

這取決於...

  • Ant的過程中沒有足夠的權限來刪除文件(通常是因爲它們是由不同的用戶,也許是系統用戶創建)。嘗試使用運行方式以管理用戶身份運行Ant腳本。
  • 當進程死機或死亡時,Windows在清理文件鎖上真的很糟糕;因此,Windows認爲該文件被死亡(或死亡)的進程鎖定。除了重啓之外,在這種情況下你無能爲力。
  • 獲取更好的工具來檢查您的系統狀態。我建議下載SysInternals工具,並使用它們代替默認的Windows等效工具。
+0

我同意第3點。sysinternals handle.exe作爲分析此類問題的命令行工具是無價的。 – 2008-10-24 01:30:19

+0

好吧,sysinternals顯示我javaw.exe在文件或目錄上有一個句柄,現在是什麼? – Snekse 2011-03-11 15:25:39

3

錯誤信息使用Ant任務重試已幫助了我。 我剛剛將它包裝在刪除任務中。

0

我最近一直有很多有這個問題,它是隨機的。有一次它有效,下次不起作用。我使用的是NetBeans(如果有問題),我已經爲build.xml添加了很多額外的任務。我在-post-jar任務中遇到了這個問題。當我在文件上調用unjar時會發生,然後刪除。我懷疑NB正在嘗試掃描jar,並導致對它的鎖定。

什麼工作對我來說是立即重命名在-post-JAR的開始瓶和.tmp擴展名添加到它。然後我調用臨時文件unjar。當我完成後,我重新命名爲所需的jar名稱。

0

我也有同樣的問題,並嘗試手動刪除編譯目錄。最後,我通過將項目的.jar工件重命名爲與項目名稱本身不同的名稱來解決此問題。例如:我的項目是門戶網站,我的ant構建腳本用於生成portal.jar,其中eclipse ant無法刪除此portal.jar。當我更改我的build.xml以生成我的.jar作爲portalnew.jar時,eclipse下次能夠刪除這個portalnew.jar。希望這可以幫助。

2

我面臨同樣的問題。
我沒有設置任何classpath或在我的機器上運行殺毒軟件。
但是,我使用的ANT版本是32位,我安裝的JDK是64位。
我安裝了一個32位JDK,問題已解決。

0

在我的情況下,我的ant clean在Eclipse中失敗,無法刪除構建文件。我不時看到這一點。通常會成功重複嘗試。這一次沒有。 嘗試從命令行運行ant clean,失敗無法刪除「無法刪除」。 它一定是Eclipse持有的問題文件,當我退出Eclipse時,cmd行能夠刪除OK。

0

您需要在Windows中手動刪除它。它爲我工作。 (通常要刪除的文件是舊版本的jar ..例如:如果存在httpcore.4.2.5.ja5r和httpcore.4.3.jar,它將嘗試刪除4.2.5.jar)

0

i面對這個問題,因爲螞蟻試圖刪除的文件被其他服務/進程使用。 我停止了該服務,然後ant build腳本確實通過了。

0

在我的情況下,我停止從任務管理器運行Java進程並重新運行Ant構建文件。該文件能夠刪除並建立成功。