# Auf einmal viele Class-Files weg



## RungetSvohu (6. Sep 2012)

Hallo Leute,

vor circa einer Stunde ist mir etwas äußerst seltsames passiert. Wie von Geisterhand löschten sich in einem meiner Projekte (das, an dem ich in den letzten Tagen etwas programmierte) einige Ordner des bin-Verzeichnisses mit den darinliegenden class-Files. Ich kann mir nicht erklären, wie es dazu kam. Eclipse war gerade an und führe eine Anwendung aus dem gleichen Workspace aber einem anderen Projekt aus. Ich bekam die Sache auch erst vor 30 Minuten mit und konnte dank Dropbox genau einsehen, was da passierte und wann es geschah. Über "Project > Clean" in Eclipse konnte ich die Dateien wiederherrstellen. Dies geschah aber nicht automatisch, wenn ich versuchte eine der gelöschten Klassen auszuführen, da gab es dann immer eine Fehlermeldung, dass die Klasse nicht gefunden werden konnte.

Könnt ihr euch erklären, was da passierte? Liegt das an Eclipse oder ist wohl eine externe Software dafür verantwortlich? Habe gerade einen Virencheck durchlaufen lassen, der meint aber, es sei alles okay.


----------



## maki (6. Sep 2012)

Das ist normal, sollte dich auch nciht stören, der bin Ordner ist dazu da unregelmässig geleert zu werden


----------



## RungetSvohu (6. Sep 2012)

maki hat gesagt.:


> Das ist normal, sollte dich auch nciht stören, der bin Ordner ist dazu da unregelmässig geleert zu werden



Das ist mir noch nie passiert, außerdem wurden auch nicht alle Ordner des bin-Ordners geleert und auch nichts mehr automatisch angelegt, wie beschrieben. Ohne den Clean-Befehl, den ich durch Googlen fand, hätte also nichts mehr funktioniert. Ich benutze Eclipse schon seit mehr als fünf Jahren, das kann doch nicht das erste Mal sein, dass mir sowas passiert, wenn das normal ist.

Aber falls das wirklich normal ist: Gibt es einen Log von Eclipse, indem ich das überprüfen kann?


----------



## ARadauer (6. Sep 2012)

Eclipse -> Project -> Build automatically 
Bauen bedeuet.. löschen und compilieren..

Man sollte nicht einfach etwas ins bin verzeichnis rein kopieren... da gibts andere lösngen.. (eigenes verzeichnis und das zum classpath hinzufügen)


----------



## RungetSvohu (6. Sep 2012)

Löschen ist ja passiert, aber das Kompilieren blieb aus. Habe bei der Aktion auch keine Daten verloren, da ich ja selbst nichts in den Bin-Ordner legte. Nur wieso legte er die class-Files nicht wieder an?

Edit: Bedeutet das "Build automatically" nicht, dass er bei jedem Speichern die entsprechende Datei neukompiliert? In meinem Fall habe ich doch gar nichts gespeichert geschweige denn verändert.


----------



## maki (6. Sep 2012)

Hi,

ein "project clean" löscht den inhalt des Bin Ordners.
Wenn der autom. Build nicht aktiviert ist, kompiliert Eclipse auch nichts in den bin Ordner hinein.

Aber was istz denn das Problem?
Dass der bin Ordner gelöscht ist ist wie gesagt, normal & richtig.

So normal, dass es darüber auch kein Log gibt.. gneausowenig wie das Kompilieren kein Log erzeugt.


----------



## RungetSvohu (6. Sep 2012)

maki hat gesagt.:


> Hi,
> Aber was istz denn das Problem?
> Dass der bin Ordner gelöscht ist ist wie gesagt, normal & richtig.



Das Problem ist, dass Eclipse (oder eine andere Software, das weiß ich ja nicht) ohne Aufforderung Teile des bin-Ordners gelöscht hat (anderes war noch da) ohne diese neu zu kompilieren.
Das ist mir so noch nie passiert. Daher bin ich mir nicht sicher, dass das alles so normal ist.


----------



## maki (6. Sep 2012)

Läuft das Projekt denn?

wie sieht denn .project und .classpath aus?


----------



## SlaterB (6. Sep 2012)

das Projekt läuft nicht, Class not found, wie alles schon gesagt wurde,
erst mit manuellen Clean besser,
die Klassen wurden anscheinend ohne Wissen von Eclipse, zumindest dem Wissen für dieses Projekt, gelöscht

wenn ein zweites Projekt dasselbe bin-Verzeichnis benutzt wärs lustig, aber irgendwas müsste dann ja erstellt werden..


> Ich bekam die Sache auch erst vor 30 Minuten mit und konnte dank Dropbox genau einsehen, was da passierte und wann es geschah.

was bedeutet das eigentlich im Detail?


----------



## maki (6. Sep 2012)

> das Projekt läuft nicht, Class not found, wie alles schon gesagt wurde,
> erst mit manuellen Clean besser,


Meine frage bezog sich darauf ob das Projekt jetzt läuft, also nach dem Clean & autom. Re-build 

Wenn jetzt alles läuft, gibt es ja kein echtes Problem das man lösen müsste, sondern könnte über grundlegende Dinge sprechen, wie zB. die bin Ordner, .project/.classpath Datei und warum DropBox keine 
Versionsverwaltung ersetzt.


----------



## SlaterB (6. Sep 2012)

scheint mir auch alles schon besprochen, von den Fragen nach den Dateien abgesehen 

mit Clean geht es natürlich wieder, die Dateien waren nur einmal weg, nicht gerade reproduzierbar
> Ohne den Clean-Befehl, den ich durch Googlen fand, hätte also nichts mehr funktioniert.

und autom. Re-build hat doch keinen Einfluss wenn einfach Dateien verschwinden, maximal hat man dann zu alte Dateien,
in jedem Fall passierte es ja ohne dass Eclipse das überhaupt merkte (nach den bisherigen Schilderungen)


----------



## maki (6. Sep 2012)

> scheint mir auch alles schon besprochen, von den Fragen nach den Dateien abgesehen


Das Thema Dropbox 6 Projektkonfiguration muss ich dann übersehen haben 



> mit Clean geht es natürlich wieder, die Dateien waren nur einmal weg, nicht gerade reproduzierbar


Weder schlimm noch ungewöhnlich IME, ab & zu muss es ein Clean sein, speziell bei größeren/komplexeren Projekten.

Aber wenn die "Probleme" nun gelöst sind...


----------



## RungetSvohu (6. Sep 2012)

Das Problem besteht doch nach wie vor:

Ich wüsste gerne, wie es dazu kommen konnte, dass Dateien einfach so gelöscht wurden, ohne neu kompliliert zu werden. Lag das an Eclipse oder eventuell an einer andere bösartige Software (von der ich bislang nichts anderes merkte)?


----------



## maki (6. Sep 2012)

Das liegt sicherlich nicht an "bösartiger" Software, sondern zB. an Eclipse, welche den einen oder anderen Bug hat... ist jetzt aber sehr schwierig nachzuvollziehen wie du dir sicherlich vorstellen kannst.
An sich ist es normal dass der bin Ordner gelöscht/geleert wird, zB. durch den Clean Befehl.

Als "Problem" würde ich das nicht bezeichnen, ist doch eher so dass dich die gesunde Neugierde treibt.

Grundsätzlich sollte der bin Ordner gar nicht nach DropBox oder eben in ein richtiges SCM wandern, sondern immer neu erstellt werden beim auschecken.


----------



## RungetSvohu (6. Sep 2012)

maki hat gesagt.:


> An sich ist es normal dass der bin Ordner gelöscht/geleert wird, zB. durch den Clean Befehl.


Den Clean-Befehl habe ich ja erst ausgeführt, um die gelöschten Dateien wiederherzustellen.



maki hat gesagt.:


> Als "Problem" würde ich das nicht bezeichnen, ist doch eher so dass dich die gesunde Neugierde treibt.


Von mir aus Neugierde. Mit der Angst, irgendwann könnte etwas ähnliches passieren, was sich nicht mehr so leicht beheben lässt.



maki hat gesagt.:


> Grundsätzlich sollte der bin Ordner gar nicht nach DropBox oder eben in ein richtiges SCM wandern, sondern immer neu erstellt werden beim auschecken.



Ich habe einfach meinen kompletten Workspace in der Dropbox liegen, nicht etwa, um damit an mehreren Computern (womöglich noch gleichzeitig) an meinem Workspace arbeiten zu können, sondern viel mehr als automatische Sicherung. In diesem Falle hat sich die Tatsache, dass ich das so handhabe, ja als praktisch erwiesen: Ich konnte damit nämlich den Zeitpunkt des Löschens ausfindig machen. Habe dank Dropbox also mehr Information über das, was passierte.


----------



## maki (6. Sep 2012)

> Den Clean-Befehl habe ich ja erst ausgeführt, um die gelöschten Dateien wiederherzustellen.


Eclipse macht sowas auch mal selber, wenn es zB. der Meinung ist, das es nötig wäre (warum auch immer)... 



> Von mir aus Neugierde. Mit der Angst, irgendwann könnte etwas ähnliches passieren, was sich nicht mehr so leicht beheben lässt.


Angst kommt oft von Unwissenheit.
Wenn du weisst dass es normal ist, brauchst du keine Angst mehr zu haben 



> Ich habe einfach meinen kompletten Workspace in der Dropbox liegen, nicht etwa, um damit an mehreren Computern (womöglich noch gleichzeitig) an meinem Workspace arbeiten zu können, sondern viel mehr als automatische Sicherung. In diesem Falle hat sich die Tatsache, dass ich das so handhabe, ja als praktisch erwiesen: Ich konnte damit nämlich den Zeitpunkt des Löschens ausfindig machen. Habe dank Dropbox also mehr Information über das, was passierte.


Auch hier wäre es beser gewesen dass du weisst was es mit dem bin Ordner so auf sich hat, dann kannst du dir selber helfen und bist nicht so verwundert.

Nebenbei, von DropBox kann man für sowas nur abraten.
Subversion, Git, etc. pp., also richtige SCM sind die bessere Wahl, und auch Industriestandard.

Wie gesagt, der bin Ordner hat nix im SCM zu suchen, oder zumindest nur leer.
Die .class Files sind ja keine Sourcen, sondern Artifakte die jederzeit aus den Sourcen erzeugt werden können.


----------



## Akeshihiro (6. Sep 2012)

Den bin-Ordner sollte man eigentlich grundsätzlich aus seinem Universum ausblenden, der existiert eigentlich gar nicht. Alles, was ein Projekt braucht, hat das Projekt durch Configs, Sources und irgendwelche eingebundenen Libs. Der ganze Kram wird durch Eclipse zusammen in den bin-Ordner geschoben bzw. kompiliert, damit man für seine Testzwecke die Anwendungen starten kann. Den Benutzer hat es eigentlich gar nicht zu interessieren, was innerhalb dieses Ordners stattfindet und warum. Einfach irgnorieren/vergessen/ausblenden/what ever, es gibt den Ordner nicht.

In SCMs ist deswegen auch eigentlich immer der erste Schritt, diesen bin-Ordner auf Ignore zu setzen, er ist einfach uninteressant, hat keinen eigentlichen Wert und hat in SCMs ohnehin nix verloren.


----------

