# Eclipse und ich: Brauche Tipps & Beileid



## hdi (3. Feb 2009)

Hey,

also ich hatte Netbeans als ich angefangen habe zu programmieren, und war damit eig. ganz zufrieden. 
Es war manchmal etwas langsam, aber ansonsten echt ganz nett.

Bin dann auf Eclipse umgestiegen weil ich hörte die "Profis" nutzen das alle, es bietet viele Plugins
und generell sollte man das halt nutzen und sich damit einarbeiten etc. 

Und ja, inzwischen mag ich es schon, aber es gibt ein paar Dinge, die mich jetz seit 2 Jahren stressen,
und das muss ich mal loswerden:

1) Wieso hat der Editor diesen *kranken* Bug, der so ziemlich alle 2 Minuten auftaucht, dass er Fehler
anzeigt, wo keine sind? Dass er sich also nicht aktualisiert? 
Wenn man Code in einem runterschreibt, passiert das nicht, aber wenn man Dinge ändert zeigt er
SEHR oft Fehler, wo keine sind. Startet man das Programm, checkt er's und auf einmal verschwinden sie alle.
Das nervt mich echt manchmal. 

2) Vorallem zeigt er oft einen Fehler nur mit einem "X" und keinem Text dazu. Toll. Das ist übrigens meist einer dieser Fehler, die es gar nicht gibt.

Habt ihr das auch? Das ist auch bei mir in der Arbeit so, ich hab Eclipse Ganymede. Mich wundert's halt
weil es der grösste Editor ist, und es diesen Fehler schon so lang gibt, dass da nichma n Patch kommt oder so?
Bei Netbeans gab es son Shit nicht.

3) Ab hier kommen jetzt wohl eher Dinge, die mein eigenes Verschulden sind, weil ich mit meinen
Wurschtfingern nicht zu recht komm.. Es gibt ja CTRL+SPACE zum Anzeigen einer kleinen Liste von verfügbaren
Methoden. 

Bsp: Ich weiss es gibt die Methode toString auf meinem Objekt, so angenommen ich weiss jetz aber nich genau
was sie nochmal tut, oder returned oder sonstwas. (dummes Bsp aber egal). Wenn ich dann schon

obj.toS...  geschrieben habe, und CTRL+SPACE drücke, pastet er mir sofort die Methode rein und fertig.
Ich kämpf dann oft 12 Sekunden mit dem Editor, bis ich nur die Liste eingeblendet bekomm, ohne dass er mir das gleich reinrotzt. Gibt es da vllt zwei verschiedene Tasten-Kombinationen?

4) Auch etwas was ich schon immer fragen wollte: 
z.B. wenn ich mache class X implements MouseLsitener, kann ich das Interface per CTRL+SHIFT+O importen, aber ich muss trotzdem noch mit der Maus auf den Fehler und die Methoden reinklatschen. Wäre auch angenehmer über Tastatur, vorallem weil es in Eclipse irgendwie >1 Sekunde dauert, bis der ToolTip kommt wenn man auf ein Error-Zeichen geht.

Also, ich fände es nett wenn ihr mir Tipps zu 3) und 4) geben könntet, sowie eure Erfahrungen mit den ersten
zwei Dingen, falls ihr welche habt. Wenn nicht, würd mich mal interessieren was für ein Eclipse ihr habt

(Ich blick da eh nicht durch: Was is der Unterschied zwischen Ganymede und "normal", oder gibt es da noch
andere/bessere?)

Ich danke


----------



## Saxony (3. Feb 2009)

Hiho,

ja die Fehler von 1. und 2. kenn ich auch. Es hilft wenn man AutoBuild an hat und wenn es zuviel wird einfach mal Ctrl+s drücken. So beseitige ich immer den Fehlerwirwar. 

Es gibt aber auch noch unter windows->preferences und dort unter Java->Editor ein Häkchen für "Report Problems as you type".

3. Für den Content Assist gibt es eine gute Lösung:

Sofort nach dem Punkt Ctrl+Space drücken und dann die Methode weiterschreiben. 

4. Ich drücke da immer Alt+Shift+s und dann v. Dann habe ich einen Dialog wo ich alle zu überschreibenden bzw. zu implmentierende Methoden auswählen kann.

bye Saxony


----------



## Vayu (3. Feb 2009)

zu 3. Window -> Prefs -> Java -> Editor -> Content Assist -> Häkchen aus bei "Insert single proposals automatically"

zu 4. sobald der fehler auftaucht, nachdem du dein implements oder extends geschrieben hast -> drücke Ctrl+1 + enter

und zum schluss ne seite, die mir sehr geholfen hat 

http://eclipse.dzone.com/news/effective-eclipse-shortcut-key


----------



## Saxony (3. Feb 2009)

Hiho,

Ctrl+1 is ne feine Sache! 

bye Saxony


----------



## hdi (3. Feb 2009)

Sweet, danke


----------



## Vayu (3. Feb 2009)

was auch ne angenehme sache ist zum methoden überschreiben. Einfach AUSSERHALB einer Methode INNERHALB einer Klasse Ctrl+Space drücken, Methodennamen vervollständigen lassen enter drücken und voila -> überschriebene Methode.


----------



## byte (3. Feb 2009)

zu 1. Den Fehler hab ich nie
zu 2. Siehe 1.
zu 3. Einfach _obj._ eintippen. Kriegt man auch mit Wurstfingern hin. 
zu 4. Entweder im Scope der Klasse STRG + SPACE oder auf dem Klassennamen (der rot angestrichen ist) STRG + 1.


----------



## hdi (3. Feb 2009)

byto was für ein Eclipse verwendest du?


----------



## byte (3. Feb 2009)

Eclipse Ganymede for Java EE


----------



## hdi (3. Feb 2009)

hab ich auch, sowohl zu hause als auch in der arbeit. Diese Fehler kommen aber...


----------



## Wildcard (3. Feb 2009)

hdi hat gesagt.:
			
		

> hab ich auch, sowohl zu hause als auch in der arbeit. Diese Fehler kommen aber...


Gib mal ein konkretes Beispiel


----------



## hdi (3. Feb 2009)

Hm ja also so richtig nachbauen kann ich das irgendwie auch nicht,
aber sowas kommt manchmal wenn ich halt Dinge im Code ändere.

Bsp ich refactor eine Klasse indem ich den Namen ändere, dann wird an jeder
Stelle im Programm geändert, aber manchmal sagt er halt dann dass er diese Klasse nicht findet.

Und wenn ich das Programm starte, geht es alles und der Fehler verschwindet.

Sowas halt. Also das is nich das einzige, ich hab nie Buch drüber geführt, ich kann mich ja nochmal
melden wenn es mir das nächste mal passiert.


----------



## Wildcard (3. Feb 2009)

dann ist build automatically vermutlich ausgeschaltet.


----------



## hdi (3. Feb 2009)

ne is an


----------



## maki (3. Feb 2009)

Ist dein Rechner vielleicht zu langsam (oder nutzt du Vista was zum selben Ergebnis führt )?

Vielleicht hat dein Eclipse nicht genug Speicher zugewiesen?


----------



## hdi (3. Feb 2009)

Ich hab zwar Vista aber mein Rechner ist sicherlich nicht zu langsam. 
Wo kann ich Eclipse mehr Speicher zuweisen? Wobei ich nicht denke dass es daran liegt,
ich meine rein von der Geschwindigkeit ist der Editor superflott bei mir


----------



## byte (3. Feb 2009)

Ich habe nur in seltenen Fällen Probleme mit falschen Compilerfehlern, wenn ich vorher viel Code per SVN mergen musste. Dann hilft ein Project -> Clean. Ist aber sehr selten der Fehler.

Der XML-Editor der Webtools ist aber extrem nervig bei mir. Der zeigt ständig mal Validierungsfehler, die längst veraltet sind. Da hilft dann leider nur alles ausschneiden, speichern, einfügen, speichern.


----------



## byte (3. Feb 2009)

hdi hat gesagt.:
			
		

> Ich hab zwar Vista aber mein Rechner ist sicherlich nicht zu langsam.
> Wo kann ich Eclipse mehr Speicher zuweisen? Wobei ich nicht denke dass es daran liegt,
> ich meine rein von der Geschwindigkeit ist der Editor superflott bei mir



Häng an die Verknüpfung zur eclipse.exe ein -vmargs -Xmx1000M ran (oder was auch immer Du zuweisen willst).


----------



## hdi (4. Feb 2009)

So, jetzt isses grad wieder passiert (wie ich schon dachte liegt es nicht daran dass Eclipse zu wenig Speicher hat, weil ich hatte das umgestellt).

Szenario war folgendes:

Ich hatte in einer Klasse ein switch-Konstrukt. Ich wollte nun Magic Numbers ersetzen durch sinnvoll benannte Konstanten. Ich habe mir also eine Klasse geschrieben, die öffentlich statische Konstanten anbietet, und in der einen Klassen im switch-Konstrukt dann die Magic Numbers ersetzt durch diese Konstanten.

Also vorher:


```
switch(something){
        case 1: ...
  ...
  }
```

und nacher:


```
switch(something){
        case Param.XY: ...
   ...
   }
```

So und als ich das so geschrieben habe, hat er mir all die Param-Konstanten als Fehler angezeigt und gesagt,
dass er sie nicht findet.

Ich hab das Programm dann gestartet und siehe da, die Fehler sind weg.

Also ich hab ne neue Klasse erstellt und konnte diese Klasse nicht in einer anderen Klassen nutzen, bevor
ich nicht compiled habe.. Also zumindest laut Eclipse Editor, es ging natürlich schon.

Und sowas passiert bei euch nicht? Versucht dieses Szenario mal bitte nachzustellen! Danke


----------



## hdi (4. Feb 2009)

...aaaaand here it comes again:

Parameter eines Konstruktors geändert, in einer anderen Klasse wo dieser Konstruktor aufgerufen wird,
habe ich die Parameter entsprechend angepasst, aber er hat es als Fehler markiert "diesen Konstruktor gibt es nicht".

Also.. ich meine das sind doch Dinge die man dauernd macht. Sowas euch auch noch nie passiert ?

Was is mit meinem Eclipse los


----------



## Saxony (4. Feb 2009)

Hiho,

wie ich schon schrieb, habe ich das auch bei meinem Eclipse (3.3 Europe).

Die geänderten Stellen werden solange als Fehler markiert bis ich mal Ctrl+s drücke und das File neu speichere dann wird ja bei aktiviertem AutoBuild das File neu kompiliert und alles ist weg. 

Bei dir klingt es so, als ob du erst das Programm startest ohne vorher zu speichern und es bei dir Änderungen dann eben erst vor der Ausführung speichert und dann erst fehlerhafte Markierungen als nichtig erkennt.

bye Saxony


----------



## Vayu (4. Feb 2009)

eclipse 3.3 und 3.4 unter XP sowie unter Vista, keinerlei solcher probleme ... aber wie Saxony schon sagt, speichern heisst das zauberwort


----------



## hdi (4. Feb 2009)

Ach speichern  :!: 
Naja ist zwar auch nicht so, wie es sein sollte, aber ein CTRL+s hat man ja in 0,nix eingegeben.

DANKE!


----------



## Wildcard (4. Feb 2009)

hdi hat gesagt.:
			
		

> Ach speichern  :!:
> Naja ist zwar auch nicht so, wie es sein sollte, aber ein CTRL+s hat man ja in 0,nix eingegeben.


lol
Wie soll es denn sonst sein? Deine Java Dateien referenzieren class files. Beim Speichern werden diese kompiliert und die Änderungen damit sichtbar.


----------



## hdi (4. Feb 2009)

> Deine Java Dateien referenzieren class files



Das war mir gar nicht bewusst. Ich hab auch erst jetzt beim genauen Hinsehen gemerkt, dass er
sofort class files erstellt wenn man eine neue .java Klasse erstellt. Ich dachte bisher das tut er erst
beim Starten wenn er explizit kompilieren soll. Und somit hab ich die Fehler auch nicht nachvollziehen können.

Jetzt ist mir das aber klar, dank euch!

PS: ein "lol" von dir Wildcard? Bist du nicht 40 oder so


----------



## Wildcard (4. Feb 2009)

hdi hat gesagt.:
			
		

> PS: ein "lol" von dir Wildcard? Bist du nicht 40 oder so


  
26


----------



## hdi (4. Feb 2009)

oh   

Naja sieh's so: Ich bin davon ausgegangen dass du eher älter bist weil deine Beiträge vom Inhalt
darauf schliessen lassen dass du schon seit mindestens 10 Jahren Java programmierst  :toll:


----------



## Wildcard (4. Feb 2009)

erst seit etwas mehr als 4, aber danke für das Lob  :wink:


----------



## hdi (4. Feb 2009)

Man tut halt was man kann für den zukünfitgen Mod-Status  :lol:


----------



## maki (5. Feb 2009)

> 26


wow

Alle Achtung



> erst seit etwas mehr als 4


WOW

*sprachlos weil beeindruckt bin*


----------



## Saxony (5. Feb 2009)

Hiho

So da haben wir ja nach zwei Seiten endlich geklärt, was das schon in der ersten Antwort empfohlene Ctrl+s mit eingeschaltetem AutoBuild so verursacht. 

bye Saxony


----------



## schalentier (5. Feb 2009)

Wildcard hat gesagt.:
			
		

> hdi hat gesagt.:
> 
> 
> 
> ...



Eclipse koennte automatisch speichern... ;-)


----------



## byte (5. Feb 2009)

Wildcard hat gesagt.:
			
		

> hdi hat gesagt.:
> 
> 
> 
> ...


Bei IDEA gehts auch ohne explizites Speichern.  

Mich wunderts eigentlich, dass Eclipse das noch nicht übernommen hat. Denn im Grunde drückt ein Eclipse-User permanent STRG + S. Da wäre Auto-Save wirklich praktisch. Und IDEA kriegt den Auto-Save Compile auch recht gut hin.


----------



## schalentier (5. Feb 2009)

byto hat gesagt.:
			
		

> Mich wunderts eigentlich, dass Eclipse das noch nicht übernommen hat. Denn im Grunde drückt ein Eclipse-User permanent STRG + S. Da wäre Auto-Save wirklich praktisch. Und IDEA kriegt den Auto-Save Compile auch recht gut hin.



Mh... {klugscheissmode on}: IDEA macht eben *kein* compile, wenn man speichert (was es automatisch tut). Stattdessen wird im Hintergrund ein AST (Syntax Tree) aufgebaut, der logischerweise auch Fehler erkennt und entsprechend hervorhebt. Und genau das geht offensichtlich deutlich schneller, als den Compiler anzuwerfen. Dafuer dauerts, wenn man die Anwendung (oder einen Test) startet, denn da muss dann compiliert werden. {off}

Aber um dem Topic nach noch ein wenig rumzuheulen: Wir setzen hier Checkstyle ein (laeuft im Hudson) und nutzen seit neustem auch ein Eclipseplugin dafuer. Das ist ja auch schnell installiert. Allerdings haben wir noch ein paar Custom-Checks, die als *.jar zusammengepackt in ein entsprechendes Verzeichnis kommen. Soweit sogut. 

Unser Plan war nun, das CS-Plugin inkl. unserer Custom-Checks als eignes Plugin fuer alle Entwickler anzubieten. Das geht auch soweit problemlos, allerdings nur fuer diejenigen, die vorher das CS-Plugin noch nicht installiert hatten. Allen andren blieb nur der Weg, Eclipse und den ganzen Workspace neu aufzusetzen. Warum? Das Plugin hat sich in unzaehligen Verzeichnissen, jar-Files, zip-Files, etc. eingenistet und irgendwie registriert. Eine Deinstallation des Plugins hinterlies immer irgendwelche Einstellungen, die eine Neuinstallation (unseres gepatchten Plugins) unmoeglich machte (Immerhin gab es eine absolut nichtssagende Fehlermeldung "Fehler beim Installieren des Plugins", gleiches stand in den Logfiles). 

Da frag ich mich... warum is das so? Wieso gibts nicht einfach EIN Verzeichnis, in dem die Plugin-JAR liegt und gut ist? Das wuerde diesen ganzen Pluginkram sowas von vereinfachen.... *jammer*


----------



## Wildcard (5. Feb 2009)

schalentier hat gesagt.:
			
		

> Da frag ich mich... warum is das so? Wieso gibts nicht einfach EIN Verzeichnis, in dem die Plugin-JAR liegt und gut ist? Das wuerde diesen ganzen Pluginkram sowas von vereinfachen.... *jammer*


Nun... Im Prinzip ist das auch so. Allerdings sind mit p2 (eclipse 3.4) die Zeiten vorbei bei denen man Plugins in /plugins wirft und irgendwann wieder löscht. Wenn man das tun möchte, dann nur noch in /dropins.
Die 'ordentlichen' PlugIns sollten eigentlich als Installable Unit installiert werden, also zB von einer Update Site.
Was den Workspace angeht, wäre doch schlimm wenn ein PlugIn nichts in den Workspace schreiben könnte, sonst wäre er ja leer  :wink: 

PlugIn Settings sind übrigens in .metadata, wenn dort das Problem lag, aber es scheint sich ja eher um ein Problem mit dem Plugin das ihr zusammengebaut habt zu handeln. Da müsste man sich also den konkreten Fall ansehen.


----------

