質問

ディレクトリを作成し、javac を呼び出し、その他すべての通常のものを実行する Ant ビルドがあります。私が抱えている問題は、クリーン(生成されたすべてのものを削除)を実行しようとすると、削除タスクによって一部のファイルを削除できなかったことが報告されることです。手動で削除しようとすると、問題なく動作します。ファイルは他のプロセスによって開かれていないようですが、ant は依然としてファイルを削除できません。私に何ができる?

役に立ちましたか?

解決

一度この問題に遭遇しました。削除しようとしたファイルが クラスパス 別のタスクのために。

他のヒント

場合によります ...

  • Ant プロセスには、ファイルを削除するための十分な権限がありません (通常、ファイルは別のユーザー (おそらくシステム ユーザー) によって作成されたためです)。「実行」を使用して、管理ユーザーとして Ant スクリプトを実行してみてください。
  • Windows は、プロセスが停止したり強制終了されたときにファイル ロックをクリーンアップするのが非常に苦手です。その結果、Windows はファイルが停止した (または強制終了された) プロセスによってロックされていると認識します。この状況では再起動以外にできることはありません。
  • システム状態を検査するためのより優れたツールを入手してください。ダウンロードすることをお勧めします システム内部 ツールを使用し、デフォルトの Windows 同等ツールの代わりにそれらを使用します。

Ant Retry タスクを使用すると役に立ちます。削除タスクをラップしたところです。

現在ログオンしているユーザーとしてビルドが実行されるかどうかはわかりません。そうでない場合は、explorer.exe または他のプロセスに表示されたディレクトリがあるという事実によって、そのディレクトリもロックされる可能性があります。ただし、同じexplorer.exeプロセスで削除すると成功します。Unlocker を試してみる http://ccollomb.free.fr/unlocker/ どのプロセスがファイル/ディレクトリをロックしているかを確認します。

私も同じ問題に直面しました。
私のマシンではクラスパスが設定されておらず、ウイルス対策プログラムも実行されていませんでした。
ただし、使用していた ANT のバージョンは 32 ビットで、インストールした JDK は 64 ビットでした。
32 ビット JDK をインストールしたところ、問題は解決されました。

ファイル (またはディレクトリ) を開いたままにしている Ant プロセスからの何かがありますか?これにより、ant の実行後は削除できるが、実行中は削除できないという状況が発生します。

1.8.0 より前の Ant バージョンには、削除操作中にランダムなエラーが発生するバグがあります。Ant 1.8.0 以降を使用してみてください。

バグの詳細はここで確認できます https://issues.apache.org/bugzilla/show_bug.cgi?id=45960

私の場合、Ant Clean が Eclipse から失敗し、ビルド ファイルを削除できませんでした。これは時々見かけます。通常は、繰り返し試行すると成功します。今回はいいえ。コマンド ラインから ant clean を実行しようとしましたが、削除できませんでした。「削除できません」。Eclipse が問題のあるファイルを保持していたはずです。Eclipse を終了すると、cmd 行で OK を削除できました。

最近この問題が頻繁に発生していますが、それはランダムです。一度うまくいったのに、次はうまくいかなくなる。私は (重要な場合に備えて) NetBeans を使用しており、build.xml に多くの追加タスクを追加しました。-post-jar タスクでこの問題が発生しました。ファイルに対して unjar を呼び出してから削除すると、それが発生します。NB が jar をスキャンしようとしていて、それがロックの原因になっているのではないかと思います。

私にとってうまくいったのは、-post-jar の先頭にある jar の名前をすぐに変更し、それに .tmp 拡張子を追加することです。次に、一時ファイルに対して unjar を呼び出します。完了したら、名前を希望の jar 名に戻します。

私も同じ問題を抱えており、ビルドディレクトリを手動で削除しようとしました。最後に、プロジェクトの .jar アーティファクトの名前をプロジェクト名自体とは異なる名前に変更することで問題を解決しました。例:私のプロジェクトはポータルであり、私のantはportal.jarを生成するためにスクリプトを構築しましたが、Eclipse antはこのportal.jarを削除できませんでした。.jar を portalnew.jar として生成するように build.xml を変更すると、Eclipse は次回この portalnew.jar を削除できました。お役に立てれば。

Windows では手動で削除する必要があります。それは私にとってはうまくいきました。(通常、削除されるファイルは古いバージョンの jar です。例えば:httpcore.4.2.5.ja5r と httpcore.4.3.jar が存在する場合、4.2.5.jar の削除が試行されます)

アリが削除しようとしていたファイルが他のサービス/プロセスで使用されていたため、この問題に直面しました。サービスを停止すると、ant ビルド スクリプトが実行されました。

私の場合は、タスク マネージャーから Java プロセスの実行を停止し、Ant ビルド ファイルを再実行しました。ファイルは削除でき、ビルドは成功しました。

Microsoft Windows 10 に切り替えて以来、このような問題が頻繁に発生します。ファイルを削除する直前にファイルの名前を変更すると、問題が解決しました。

<rename src="file.name" dest="file.name.old"/>
<delete file="file.name.old" />

git がインストールされている場合
git bash シェルでディレクトリを開きます (最初に git bash を検索します)。
次に、bashコマンドを入力して、次のようにファイルを削除します

rm -r filename.xyz
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top