私はディレクトリを作成し、javacとすべての通常のものを呼び出すantビルドを持っています。私が抱えている問題は、クリーンアップ(生成されたものをすべて削除)しようとすると、一部のファイルを削除できなかったという削除タスクレポートが表示されることです。それらを手動で削除しようとすると、問題なく動作します。ファイルは他のプロセスによって開かれていないようですが、antはまだそれらを削除することができません。私に何ができる?
15 に答える
私は一度この問題に遭遇しました。削除しようとしたファイルが別のタスクのクラスパスの一部だったためです。
場合によります ...
- Antプロセスには、ファイルを削除するための十分な権限がありません(通常、ファイルは別のユーザー、おそらくシステムユーザーによって作成されたため)。[名前を付けて実行]を使用して、管理ユーザーとしてAntスクリプトを実行してみてください。
- Windowsは、プロセスが停止または強制終了されたときにファイルロックをクリーンアップするのが非常に苦手です。その結果、Windowsは、ファイルが停止した(または強制終了された)プロセスによってロックされていると見なします。この状況では、再起動以外にできることは何もありません。
- システムの状態を検査するためのより優れたツールを入手してください。SysInternalsツールをダウンロードして、Windowsのデフォルトの同等ツールの代わりに使用することをお勧めします。
Ant Retry タスクを使用すると役に立ちました。削除タスクをラップしただけです。
私は同じ問題に直面しました。
クラスパスが設定されていなかったり、マシンでウイルス対策が実行されていませんでした。
ただし、使用していた ANT のバージョンは 32 ビットで、インストールした JDK は 64 ビットでした。
32 ビット JDK をインストールしたところ、問題は解決しました。
ビルドが現在ログオンしているユーザーとして実行されているかどうかはわかりません。そうでない場合は、explorer.exe または他のプロセスが表示されているディレクトリを持っているという事実により、ディレクトリもロックされる可能性があります。ただし、同じ explorer.exe プロセスで削除すると成功します。http://ccollomb.free.fr/unlocker/からUnlocker を試して、ファイル/ディレクトリがロックされているプロセスを確認してください。
ファイル (またはディレクトリ) を開いたままにしている Ant プロセスからの何かがありますか? これにより、ant の実行後にそれらを削除できるが、実行中は削除できないという状況が発生します。
1.8.0 より前のバージョンの Ant には、削除操作中にランダムなエラーが発生するバグがあります。Ant 1.8.0 以降を使用してみてください。
ここでバグの詳細を確認できますhttps://issues.apache.org/bugzilla/show_bug.cgi?id=45960
Windows で手動で削除する必要があります。それは私のために働いた。(通常、削除するファイルは古いバージョンの jar です。例: httpcore.4.2.5.ja5r と httpcore.4.3.jar が存在する場合、4.2.5.jar を削除しようとします)
アリが削除しようとしていたファイルが他のサービス/プロセスによって使用されていたため、この問題に直面しました。サービスを停止したところ、ant ビルド スクリプトが実行されました。
私の場合、タスク マネージャーから Java プロセスの実行を停止し、Ant ビルド ファイルを再実行しました。ファイルは削除でき、ビルドは成功しました。