2008-09-16 8 views
14

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

+0

使用しているAntバージョンは何ですか? – Sergey

+1

antが以前のタスクからそれらを削除しようとしても、まだ開いている可能性があります。 –

答えて

12

この問題が1回発生しました。 削除しようとしたファイルが別のタスクのクラスパスの一部だったからです。

+3

どうやって解決しましたか? –

+2

@StefanSprengerあなたは正しい順序でタスクを実行する必要があります – CMS

+2

常にこの問題の理由ではありません。場合によっては、システムを再起動するだけで、すべて正常に動作します。この場合、たぶんWindowsがプロセスがそれらのファイルを使用していると誤って考える理由があります。 – Arashsoft

2

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

1

オープンしているファイル(またはディレクトリ)を保持しているAntプロセスから何かがありますか?これは、あなたがantを実行した後でそれらを削除できる状況を引き起こしますが、その間には起こりません。それが依存

8

...

  • Antのプロセスは、(彼らは別のユーザーは、おそらくシステムのユーザーによって作成された通常ので)ファイルを削除するための十分な権限がありません。 Run Asを使用してAntスクリプトを管理者として実行してみてください。
  • Windowsは、プロセスが停止したり強制終了されたときにファイルロックをクリーンアップするのが本当に悪いです。したがって、Windowsは、そのファイルが死んだ(または強制終了された)プロセスによってロックされていると考えます。この状況では、再起動以外は何もできません。
  • あなたのシステム状態を検査するためのより良いツールを入手してください。 SysInternalsツールをダウンロードし、デフォルトのWindowsの代わりに使用することをお勧めします。
+0

私はポイント3に同意します。sysinternals handle.exeはこの種の問題を分析するためのコマンドラインツールとして非常に有用です。 –

+0

さて、sysinternalsはjavaw.exeがファイルやディレクトリのハンドルを持っていることを示しています。 – Snekse

+0

システムを再起動すると私の問題が解決しました – Arashsoft

1

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

あなたは、Antの再試行タスクが私を助けている使用して、ここでhttps://issues.apache.org/bugzilla/show_bug.cgi?id=45960

3

バグの詳細を見ることができます。 私はちょうど削除タスクの周りにそれをラップしました。

0

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

私にとっては、すぐに-post-jarの先頭でjarファイルの名前を変更し、.tmp拡張子を追加するだけでした。次に、私は一時ファイルに対してunjarを呼び出します。私が終わったら、希望の瓶名に戻します。

0

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

2

私は同じ問題に直面しました。
クラスパスが設定されていないか、マシン上でウイルス対策が動作していません。
しかし、使用していたANTのバージョンは32ビットで、インストールされたJDKは64ビットでした。
32ビットJDKをインストールしたところ、問題は解決しました。

+0

私と同じ問題... 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ビルドファイルを再実行しました。ファイルを削除してビルドできました。

関連する問題