web-dev-qa-db-fra.com

Eclipse n'a pas pu supprimer l'erreur

Je travaille sur un projet avec Eclipse et maintenant tout allait bien, mais la dernière fois que j'ai essayé de le construire, l'erreur est retournée.

"Le projet n'a pas été construit en raison de" Impossible de supprimer '/ Torpedo/bin/bin'. ". Résolvez le problème, puis essayez d'actualiser ce projet et de le construire car il peut être incohérent. Problème Java inconnu de Torpedo"

Et il a supprimé mon dossier bin qui stocke toutes les images et tous les éléments nécessaires au programme. (Heureusement j'ai eu une sauvegarde). J'ai essayé de googler et d'essayer toutes les solutions que j'ai trouvées, mais rien n'y fait, et la plupart d'entre elles suggèrent également de supprimer le dossier à la main, ce que je ne peux pas . Que dois-je faire?

49
KáGé

Je vois cela régulièrement sur Windows. Je pense que c'est un bug ou une course dans Eclipse, peut-être une course avec un vérificateur de virus qui n'aime pas une suppression immédiatement suivie d'une écriture dans le même fichier qui a été supprimé. Le correctif que j'utilise consiste à utiliser Project - Clean dans la barre de menus.

@Ash a raison dans les commentaires ci-dessus, vous ne devriez pas avoir de ressources dans votre dossier de sortie. Pour éviter cela, je change toujours le nom de mon dossier de sortie de "bin" à quelque chose de plus évident, comme "Eclipse/classes".

28
Chris Dolan

J'ai ce problème semi-régulièrement, en particulier lors du déploiement sur Tomcat ou équivalent, sous Windows 7. Cela m'arrive également avec la version en ligne de commande de maven. Il n'y a donc pas que Eclipse qui a ce problème.

La cause première est que quelque chose tient sur un descripteur de fichier. La plupart des problèmes ont disparu lorsque j'ai désactivé la recherche/l'indexation Windows sur mon PC, mais les problèmes persistent parfois.

Pour localiser ce qui se passe, vous devez télécharger Process Explorer (l'un des programmes les plus utiles que j'ai jamais rencontré). Cela vous permet de voir exactement ce qui est en cours d'exécution sur votre PC, les fichiers qu'il a ouverts, les performances des processus, son volume de traitement, la quantité de IO qu'il fait, etc. Quand vous avez un fichier qui peut ne pas être supprimé, vous pouvez Rechercher-> Rechercher une poignée ou une DLL et entrer une partie du nom, qui indique qui l'a ouvert. Vous ne l'attrapez pas toujours à temps, mais assez souvent pour connaître le coupable.

enter image description here

23
Matthew Farwell

Ce qui fonctionne pour moi: 

  1. Fermez Eclipse.
  2. Allez dans votre dossier bin et supprimez tout le contenu ( pas le dossier lui-même).
  3. Lancez Eclipse.
  4. Nettoyez votre projet en allant à Project -> Clean.
  5. Assurez-vous de cocher Project -> Build automatically.
12
hamzali

C'est un problème Windows 7. Nous générons beaucoup de code ici et rencontrons le même problème lors de la génération de code [En deux étapes: 

  1. Transformation XSL et 
  2. pretty-printing], l’un des processus Windows, probablement Explorer.exe, intervient. Cela ne se produit qu'une fois sur 200.

Sous Linux et Windows XP, nous n’avons pas les problèmes d’Eclipse ni la génération de fichiers.

Et nous sommes confrontés aux problèmes même si nous exécutons la génération de code et Eclipse en tant qu’administrateur.

Nous avons demandé de l'aide à Microsoft, mais la suggestion que nous avons eu jusqu'à présent est "Redémarrer!". Désespéré!

4
gazonk.del

Les problèmes de suppression d'éléments pour moi sous Windows se résument généralement à l'une des deux choses suivantes:

  • Le fichier est ouvert par un programme. Cela inclut la machine virtuelle Java. Cela ne disparaît généralement pas tout seul.
  • Le programme antivirus sur l'ordinateur a le fichier ouvert pour tout ce qu'il doit faire. Cela disparaît généralement après un certain temps. Je recrée fréquemment les espaces de travail et si cela se produit trop rapidement, Eclipse se plaint de ne pas pouvoir supprimer de fichiers.

Je viens d'avoir ce problème et c'était TGitCache.exe verrouiller le dossier bin. Si vous utilisez TortoiseGit, supprimez simplement le processus TGitCache.exe et vous devriez être prêt.

2
HuckIt

Vérifiez si un autre processus utilise un fichier dans le dossier "bin" cible et supprimez-le. Cela se produit généralement avec d'autres processus Java appelés à partir d'Eclipse.

2
sina72

J'ai eu un problème similaire avec Windows XP/Vista. Dans mon cas, la longueur totale du fichier comptait plus de 255 caractères.

/abcd/abcd/abcd/abcd..../abcd

La seule solution que j'ai trouvée était de renommer les répertoires pour le rendre plus court que 255 caractères.

/a/a/a/a/a/a/a..a/a

Après cela, vous pouvez le supprimer. C'est une restriction dans l'API Windows. Le système de fichiers peut gérer plus de 255 caractères, mais pas l'explorateur qui utilise l'api Windows.

2
ollins

il suffit d'ajouter à la base de connaissances. J'ai eu ce problème. le redémarrage d’Eclipse ou de Windows ne l’a pas corrigé.

la suppression de .metatdata/.lock dans le répertoire parent après la fermeture d’Eclipse a résolu le problème. iirc, parfois vous avez besoin de redémarrer Windoze.

1
Ray Tayek

Je travaillais sur un projet open source, et ce problème particulier était une vraie douleur dans le cul et a fini par perdre 4 heures. 

Ce que Eclipse essaie de dire, c'est: 

Je n'ai pas de droits d'accès au dossier bin en question. Si vous utilisez Linux, alors:

  1. Ouvrez votre terminal 
  2. Allez dans le répertoire d'où vous importez le projet dans Eclipse et chmod 777 -R dossier_projet
  3. Vérifiez à nouveau, si le problème persiste, accédez au dossier de votre projet où se trouve bin et faites la même chose - chmod 777 -R bin_folder
  4. Maintenant, ouvrez Eclipse, nettoyez et construisez à nouveau. Il devrait bien fonctionner
1

J'ai eu ce problème un peu récemment. J'ai réalisé que cela commençait à se produire après avoir configuré l'espace de travail pour recharger automatiquement toutes les ressources du disque. Cela peut être configuré à partir du menu: Préférences> Général> Espace de travail.

1
readikus

Cela m'est juste arrivé. J'ai eu le contrôle d'accès utilisateur (UAC) désactivé lorsque cela s'est passé (Windows Vista 32 bits). J'ai réactivé l'UAC, redémarré Vista, puis l'erreur a disparu. Contre-intuitif que si le contrôle de compte d'utilisateur est désactivé, la suppression du répertoire bin/net échoue, mais fonctionne avec le contrôle de compte d'utilisateur. Allez comprendre.

1
Dan

1 - Nettoyez votre projet en allant dans Projet -> Nettoyer .

2 - Assurez-vous de vérifier Projet -> Construire automatiquement .

Mais auparavant, vérifiez les autorisations sur les dossiers src et target de votre projet. Eclipse doit lire et écrire dans ces dossiers, puis libérez-les. Votre problème sera résolu.

Le processus que j'ai suivi est

  1. Fermer Eclipse
  2. Explorer dans le dossier
  3. Supprime-le
1
Vinod

Solution (pour moi): Dans mon cas, le fichier n’existait plus d’où il était lié, il n’était donc pas trouvé (évident). Tous les fichiers référencés se trouvent dans les chemins de mon dossier src quelque part ou dans d’autres projets locaux. Jusqu'à présent, rien n'a fonctionné pour moi si ce n'est ce qui suit ...

Comment j'ai pu supprimer mes liens brisés.

  • Ouvrez Eclipse, ouvrez le projet
  • Accédez au dossier (dans l'explorateur) à partir duquel le fichier est référencé.
  • Créez un fichier (vide/vide) portant le même nom que le fichier référencé (C'est-à-dire: "Fichier.Java").
  • Retournez dans Eclipse et actualisez le projet.
  • Maintenant, vous pouvez supprimer le fichier qui est maintenant trouvé.

Lien supprimé.

Ceci est une solution de contournement sale. J'espère que ce problème est résolu cependant.

1
user1201763

Je viens d'avoir ce problème ... et cela était dû au fait que j'avais une session en ligne de commande (écran DOS ...) ouverte dans un dossier de l'arborescence BIN du projet que je construisais ... Je voulais exécuter le fichier .class via la ligne de commande.

La solution consistait simplement à revenir dans le dossier bin afin que le «nettoyage» puisse supprimer et recréer ces dossiers cibles.

1
Donald Klopper

Mise à jour des bottes de printemps!

J'ai eu le même problème où ma suite d'outils Spring a lancé cette erreur [Windows 7] chaque fois que j'apporte des modifications au JSP ou aux ressources (CSS, JS, images). Cela permettrait une fois de sauvegarder les modifications mais la deuxième fois, STS émettrait l’erreur qu’il ne pouvait pas supprimer le fichier que j’avais modifié [fondamentalement, je ne pouvais pas déplacer le fichier dans le dossier bin]. Je dois arrêter l'application, faire un projet -> nettoyer pour que l'erreur disparaisse, apporter les modifications et démarrer l'application. Process Explorer a déclaré que javaw avait le handle sur bindirectory.

J'ai essayé toutes les suggestions répertoriées en tant que réponses: recréer l'espace de travail, vérifier les références de projet, mettre à jour ma suite d'outils Spring, désactiver la recherche Windows, l'indexation, etc. Mais aucune n'a fonctionné.

Enfin, j'ai mis à jour mes bottes de printemps de 1.4.0 à 1.5.4 et l'erreur a disparu. Donc, si vous utilisez Spring Boots et que vous rencontrez ce problème, vérifiez votre version et mettez-le à jour. Vous devrez peut-être aussi ajouter spring-boot-devtools pour activer le remplacement à chaud avec les dernières versions de Spring Boots.

0
Arun Christopher

Ce problème m’était venu lorsque l’autorisation du répertoire du projet était modifiée. Assurez-vous que l'utilisateur a l'autorisation d'écriture dans le répertoire du projet. En l'absence d'autorisation d'écrire dans le répertoire Project, Eclipse ne parviendra pas à supprimer/créer le dossier Bin.

Pour le résoudre, j'ai donné l'autorisation d'écriture au répertoire Project.

Ex: Sudo chmod -R 777/MyProject/code (Dans mon cas, j’ai utilisé Ubuntu, selon le système d’exploitation, assurez-vous de donner l’autorisation en écriture) 

0
ShivBuyya

Parfois, il peut être résolu simplement en nettoyant le projet et en le reconstruisant. Cela a fonctionné pour moi juste avant. 

De plus, cliquer sur "Construire automatiquement" dans l'onglet "Projet" est généralement plus pratique pour résoudre des problèmes mineurs.

0
Tom

J'ai suivi ces étapes pour me débarrasser de ceci:

  • Fermer Eclipse
  • Allez dans le gestionnaire de tâches -> processus -> Java.exe -> fin du processus
  • sélectionnez javaw.exe -> end process
  • Ensuite, allez à l'emplacement du projet, supprimez-le
  • démarrez Eclipse et supprimez le projet

bravo ... c'est tout ..

0
Shylendra Madda

Je devais arrêter chromedriver avant de pouvoir nettoyer mon projet. Il y avait des processus dans le gestionnaire de tâches qui devaient être fermés.

0
obesechicken13

J'ai eu le même problème. Après avoir redémarré Eclipse, une suppression est effectuée pour moi, puis les suppressions suivantes échouent. Ce que j’ai finalement fait est de redémarrer Eclipse, puis Ctrl + clic sur chaque élément que je voulais supprimer. Ensuite, je les ai tous supprimés en même temps et tout a bien fonctionné.

0
user393274

Je n'ai pas lu toutes les réponses précédentes, mais j'ai aussi le même problème. J'utilise Eclipse 4.1 sur Ubuntu 12.10, 64 Bit et un SSD. J'ai réalisé que ce problème de suppression se présentait toujours lorsque mon ordinateur se bloquait avec un Eclipse ouvert. J'ai réussi à résoudre le problème en supprimant des fichiers d'index particuliers. Par exemple, mon fichier journal d’espace de travail (situé dans /.metadata/.log) était plein avec EOFException, indiquant que certaines métadonnées ne pouvaient pas être lues, telles que

!ENTRY org.Eclipse.ui.ide 4 4 2012-12-13 13:25:35.988
!MESSAGE Problems occurred refreshing the selected resources.
!SUBENTRY 1 org.Eclipse.core.resources 4 567 2012-12-13 13:25:35.988
!MESSAGE Could not read metadata for '/home/xyzworkspace/.metadata/.plugins/org.Eclipse.core.resources/.projects/server-test/.indexes/7/9c/properties.index'.
!STACK 0
Java.io.EOFException
    at Java.io.DataInputStream.readByte(DataInputStream.Java:250)
    at org.Eclipse.core.internal.localstore.Bucket.load(Bucket.Java:298)
    at org.Eclipse.core.internal.properties.PropertyBucket.load(PropertyBucket.Java:258)
    at org.Eclipse.core.internal.localstore.Bucket.load(Bucket.Java:274)
    at org.Eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.Java:98)
    at org.Eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.Java:109)
    at org.Eclipse.core.internal.localstore.BucketTree.internalAccept(BucketTree.Java:109)
    at org.Eclipse.core.internal.localstore.BucketTree.accept(BucketTree.Java:76)
    at org.Eclipse.core.internal.properties.PropertyManager2.deleteProperties(PropertyManager2.Java:102)
    at org.Eclipse.core.internal.properties.PropertyManager2.deleteResource(PropertyManager2.Java:111)
    at org.Eclipse.core.internal.resources.Resource.deleteResource(Resource.Java:918)
    ... here goes the rest of the stack trace...

Après avoir supprimé ce fichier d’index particulier et redémarré Eclipse, tout a fonctionné comme avant. Tout retour d’information sur le bien-fondé de la suggestion est apprécié.

0
nastra

Ça marche pour moi:

  1. Fermez Eclipse.
  2. Supprimez du dossier Eclipse de votre projet toutes les données contenues dans les classes.
  3. Ouvrez Eclipse.
  4. Équipe -> CleanUp
0
javaboygo

Sur Windows, j'ai ouvert Eclipse avec le privilège Admin. Le problème est parti.

0
ercu

Je me pose juste le même problème: impossible de nettoyer/reconstruire le projet Eclipse, car le dossier de sortie de mes classes ne peut pas être supprimé.

J'ai fermé Eclipse et essayé de supprimer le dossier. Windows s'est plaint qu'il est utilisé par une autre application.

Étant sous Windows, je lance resmon.exe à partir de Windows/de la barre de recherche. Puis, dans l’onglet CPU/poignées associées, je recherche le chemin du dossier et j’ai trouvé le traitement correspondant dans Outlook. J'ai envoyé un mail avec un fichier de ce chemin et Outlook semble l'avoir conservé. Après avoir supprimé l’entrée de la poignée, tout a fonctionné à nouveau.

0
littlebear

J'ai résolu ce problème en désactivant l'indexation de la recherche Windows. Il semble que je me souvienne il y a un certain temps, j'ai essayé de chercher dans mon dossier de projet en utilisant l'explorateur de fichiers Windows. Je suppose que Windows a gardé son index de recherche à jour depuis en scannant le dossier et heurte maintenant les têtes avec Eclipse clean.

Pour désactiver:

  1. Panneau de contrôle
  2. Outils administratifs
  3. Prestations de service
  4. Trouvez "windows search"
  5. Le désactiver

Depuis que Windows Search est cassé, je ne l'utilise pas quand même. J'utilise agent saccage pour la recherche. 

0
lance-java

Process Explorer a montré que le fichier .jar Android Java qui ne pouvait pas être supprimé était utilisé par javaw, un sous-processus d'Eclipse ...

Cela semble buggy.

La solution consiste à fermer Eclipse et à supprimer le fichier de l'explorateur ...

0
KrisWebDev