2008-09-16 26 views
14

Tôi có một bản dựng kiến ​​tạo thư mục, gọi javac và tất cả các công cụ thông thường. Vấn đề tôi gặp phải là khi tôi cố gắng làm sạch (xóa tất cả nội dung đã được tạo), các báo cáo tác vụ xóa không thể xóa một số tệp. Khi tôi cố gắng xóa chúng bằng tay nó hoạt động tốt. Các tập tin dường như không mở bởi bất kỳ quá trình nào khác nhưng kiến ​​vẫn không quản lý để xóa chúng. Tôi có thể làm gì?Ant không thể xóa một số tệp trên windows

+0

Phiên bản Ant bạn đang sử dụng là gì? – Sergey

+1

Chúng vẫn có thể mở khi kiến ​​cố gắng loại bỏ chúng khỏi nhiệm vụ trước đó –

Trả lời

12

Tôi gặp sự cố này một lần. Đó là vì tệp tôi đã cố xóa là một phần của đường dẫn lớp học cho một tác vụ khác.

+3

bạn đã giải quyết vấn đề đó như thế nào? –

+2

@StefanSprenger bạn phải thực hiện các nhiệm vụ của mình theo đúng thứ tự – CMS

+2

Nó không phải lúc nào cũng là lý do cho vấn đề này. Đôi khi bạn chỉ cần khởi động lại hệ thống của bạn và mọi thứ hoạt động tốt. Trong trường hợp này, có lẽ lý do là các cửa sổ giả định rằng một quá trình đang sử dụng các tệp đó. – Arashsoft

2

Bạn không nói nếu bản dựng của bạn được chạy như người dùng hiện đã đăng nhập. Nếu không, thực tế là explorer.exe hoặc quá trình khác có thư mục được hiển thị có thể làm cho nó bị khóa là tốt. Nhưng xóa nó trong cùng một quá trình explorer.exe sẽ thành công. Hãy thử Unlocker từ http://ccollomb.free.fr/unlocker/ để xem những quy trình nào đã bị khóa/tệp.

1

Có điều gì đó từ quá trình Ant đang giữ các tệp (hoặc thư mục) mở không? Điều này sẽ gây ra tình huống mà bạn có thể xóa chúng sau khi chạy kiến, nhưng không phải trong thời gian.

8

Nó phụ thuộc ...

  • Quá trình Ant không có đủ quyền để xóa các tập tin (thường là vì chúng được tạo ra bởi một người dùng khác nhau, có lẽ một người sử dụng hệ thống). Hãy thử chạy tập lệnh Ant của bạn với tư cách là người dùng quản trị, sử dụng Run As.
  • Windows thực sự tồi khi dọn dẹp các khóa tệp khi các quá trình chết hoặc bị giết; do đó, Windows cho rằng tệp bị khóa bởi một quá trình đã chết (hoặc đã bị giết). Bạn không thể làm gì trong tình huống này ngoài khởi động lại.
  • Nhận các công cụ tốt hơn để kiểm tra trạng thái hệ thống của bạn. Tôi khuyên bạn nên tải xuống các công cụ SysInternals và sử dụng chúng thay vì các tương đương Windows mặc định.
+0

Tôi đồng ý với điểm 3. sysinternals handle.exe là vô giá như một công cụ dòng lệnh để phân tích loại vấn đề này. –

+0

Được rồi, vì vậy sysinternals cho tôi thấy rằng javaw.exe có một xử lý trên một tập tin hoặc thư mục, bây giờ những gì? – Snekse

+0

Khởi động lại hệ thống đã giải quyết được sự cố của tôi – Arashsoft

3

Sử dụng tác vụ Ant Thử lại đã giúp tôi. Tôi vừa gói nó quanh Tác vụ Xóa.

0

Gần đây tôi đã gặp sự cố này và rất ngẫu nhiên. Một lần nó hoạt động, lần sau nó không hoạt động. Tôi đang sử dụng NetBeans (trong trường hợp đó là vấn đề) và tôi đã thêm rất nhiều nhiệm vụ phụ vào build.xml. Tôi đã gặp vấn đề này trong nhiệm vụ -post-jar. Nó sẽ xảy ra khi tôi gọi unjar trên tập tin, sau đó xóa. Tôi nghi ngờ rằng NB đang cố gắng để quét jar và điều này gây ra khóa trên đó.

Điều gì đã hiệu quả đối với tôi là đổi tên ngay lập tức jar khi bắt đầu -post-jar và thêm phần mở rộng .tmp vào nó. Sau đó, tôi gọi unjar trên tập tin tạm thời. Khi tôi hoàn thành, tôi đổi tên trở lại tên jar mong muốn.

0

Tôi cũng gặp vấn đề tương tự và đã được thử xóa các thư mục xây dựng theo cách thủ công. Cuối cùng tôi đã giải quyết nó bằng cách đổi tên thành tạo phẩm .jar của dự án của tôi thành một tên khác với tên dự án. Ví dụ: dự án của tôi là cổng thông tin và xây dựng kịch bản kiến ​​của tôi để tạo ra portal.jar, nơi mà kiến ​​eclipse không thể xóa portal.jar này. Khi tôi thay đổi tệp build.xml của mình để tạo tệp .jar của tôi là portalnew.jar, nhật thực đã có thể xóa portalnew.jar này lần sau. Hi vọng điêu nay co ich.

2

Tôi gặp phải vấn đề tương tự.
Tôi không có bất kỳ classpath nào được đặt thành hoặc chống vi-rút đang chạy trên máy của tôi.
Tuy nhiên, phiên bản ANT mà tôi đang sử dụng là 32 bit và bản cài đặt JDK tôi đã cài đặt là 64 bit.
Tôi đã cài đặt một JDK 32 bit và sự cố đã được giải quyết.

+0

cùng một vấn đề đối với tôi ... đã làm việc sau khi thay đổi thành jdk 32-bit ... cảm ơn bro –

0

Trong trường hợp của tôi, công cụ xóa kiến ​​của tôi không thực hiện được từ Eclipse, không thể xóa tệp xây dựng. Tôi thấy điều này theo thời gian. Thường thành công trên một nỗ lực lặp lại. Lần này không. Đã cố chạy ant sạch từ dòng lệnh, không thể xóa "không thể xóa". Phải có Eclipse đang nắm giữ tập tin vấn đề, khi tôi thoát Eclipse, dòng cmd có thể xóa được OK.

0

Bạn cần xóa thủ công trong Windows. Nó làm việc cho tôi. (Thông thường các tệp sẽ bị xóa là các phiên bản cũ hơn của jar .. Ví dụ: nếu có httpcore.4.2.5.ja5r và httpcore.4.3.jar, nó sẽ cố gắng xóa 4.2.5.jar)

0

i phải đối mặt với vấn đề này khi tập tin mà kiến ​​đang cố gắng xóa đang được sử dụng bởi một số dịch vụ/quy trình khác. Tôi đã ngừng dịch vụ, và sau đó kịch bản xây dựng kiến ​​đã chạy qua.

0

Trong trường hợp của tôi, tôi đã ngừng chạy quá trình Java từ Trình quản lý Tác vụ và chạy lại tệp xây dựng Ant. Tệp có thể xóa và tạo thành công.

Các vấn đề liên quan