neu bei Eclipse, ein paar Fragen

jeipack

Erfahrenes Mitglied
Hi Forum
Ich bin neu bei Eclipse und komme bei ein paar Sachen einfach nicht weiter. Ich hoffe ihr könnt mir bei der Einstellung helfen.

- Das wichtigste/nervigste zu erst: Wenn ich ein Programm mehrmals starte wird das gleiche Konsolenfenster für die Ausgabe benutzt. Man kann zwar zwischen den einzelnen Ausgaben switchen, aber das ist überhaupt nicht komfortabel. Wie kann ich also für jedes gestartete Programm ein neues Konsolenfester öffnen lassen?

- Ich habe verschiedenste Projekte ins Eclipse geholt. Das Problem ist nun, dass wenn ich in ein anderes Projekt wechsle (es anklicke) die Klassen des zuvor ausgewählten Projekte immer noch im Register angezeigt werden. Das ist erstens nervend weil ich total die Übersicht verliehre und zweitens kann das recht gefährlich werden, da die einten Projekte fast das gleiche sind und somit die Klassen genau gleich heissen und auch etwa gleich aussehen. Somit ist es nur eine Frage der Zeit bis ich aus versehen Änderungen in der falschen Klasse vornehme.

- Das 3te sind die Sourcen bei der Debug Configuration. Ich habe eine neue Konfiguration erstellt und alle JARs die ich brauche in den Classpath gepackt (Starten kann ich es), zudem habe ich unter Source alle Sourcen (Sourcen liegen in separaten JAR Files) zu den oben erwähnten JARs hinzugefügt. Leider kapiert er es nicht. Wenn ich eine Klasse aus den JARs öffnenund debuggen will kommt : "Source not found, You can attach the source by clicking Attack Source below:". Was mache ich falsch? Ach ja wenn man die Sourcen jedem JAR einzeln zuweist klappt es.

Hoffe bin hier nicht völlig offtopic mit den Fragen zur IDE ;)

Grüsse, Danke und im nachhinein allen noch ein schönes neues Jahr :)
jeipack
 
1) Weiß nicht nicht, habe ich auch schon versucht rauszufinden. ._."
2) Hier ist du glaub ich 3 Möglichkeiten: 1. du schreibst am Anfang ein rießiges Komentarfeld rein, was verhindert das du die Klassen verwechselst, 2. du gewöhnst dir an wenn du mit einem Projekt fertig bist am Reiter Rechtsklick -> Close All zu nehmen oder 3. (die warscheinlich beste Methode) du öffnest Projekte durch Rechtsklick (am Projekt Folder) -> Open in new Window. Funktioniert aber soweit ich weiß nur wenn du keine Working Sets verendest.
3) Keine Ahnung, wenn ich eine Jar erstelle nehme ich immer Export... -> JAR file -> Export Java source files and resources. (True)
Dann kann ich dem Source auch öffnen. (Controll + Linksklick auf eine Variable die auf eine Klasse in einer Jar verweißt.)
 
Moin,
zu (1) wenn ich Dich richtig verstehe, meinst Du das Konsolenfenster von WebStart, oder?
Wie werden die Programme denn gestartet
Also bei uns hier werden für die einzelnen Anwendungen beim Runterladen vom Webserver Verknüpfungen angelegt, dann jeweils auf die zugehörige jnlp-Datei verweisen - bspw.:
C:\WINDOWS\system32\javaws.exe "C:\Dokumente und Einstellungen\xxx\Anwendungsdaten\Sun\Java\Deployment\cache\javaws\http\Dwww.xxx.de\...\AMprogramm_name.jnlp"
Dabei öffnet sich auch für jede Anwendung ein einzelnes Konsolenfenster!
zu (2) also ich habe mir aus genau diesem Grund angewöhnt, immer nur ein Projekt zur Zeit geöffnet zu haben (zumalk hier viele Sourcen auchnoch gleiuch benannt sind ...). D. h. ich schließe zuerst das bisherige Projekt (und ggf. wie von kai beschrieben, alle Dateien) und öffne dann das Gewünschte. Da sichhier bei mir dann leider auch nicht immer alle gewünschten Sourcen automatisch wieder öffnen, so wie beim letzten Mal, habe ich schon an bestimmten Stellen in den Sourcen ein "// TODO" reingeschrieben, nachdem ich dann suche und so an alle gewünschten Sourcen komme ;-] Ist vielleicht nicht die schlaueste Lösung, aber es t :D
zu (3) kann ich leider nicht viel sagen, außer dass ich weiß, dass bspw. externe LIBs bei uns mit auf dem Webserver liegen müssen, damit sie ggf. passend runtergeladen werden!

Gruß
Klaus
 
Zu 1.: Wieviele Programme laufen den gleichzeitig? Client / Server? Also 2? Wenn zuviele Programme laufen wird das IMHO so oder so unübersichtlich.

Zu 2.: Es gibt bei mir in der J2EE Perspektive oben in der Menüleiste einen Button "Toggle Breadcrumb" der im JavaEditor oben anzeigt wo genau sich die Klasse befindet. Ansonsten bleibt wohl nix ausser Projekte sauber öffnen und schließen oder verschiedene Workspaces benutzen. Da mir das Problem ein wenig exotisch scheint eine Gegenfrage: wie sollte man sowas denn deiner Meinung nach am besten handeln? IMHO ist das selbstgeschaffene Komplexität.

3. Was spricht dagegen die Sourcen den JARs zuzuweisen? So kannst du sie auch in mehreren Projekten "wiederverwenden". Userlibraries sind eine Möglichkeit sich zu organisieren. Ein Vernünftiges Dependencymanagement (z.B. Maven) eine andere.

Gruß
Ollie
 
Hi Leute
Erstmal vielen Dank für die Antworten.
Vielleicht hätte ich sagen sollen, dass viele der offenen Projekte zur selben Software gehören. Um die Software auszuführen erstelle ich erst das JAR des bearbeiteten Projekts, führe ein ANTScript aus welche die jeweils neuste compilierte Version der JAR Files richtig zusammenkopiert und starte die Software in einem extra fürs Ausführen und Debuggen eingerichteten Projekt (Punkt 3 bezieht sich auf dieses Projekt, aber der Punkt kann man abhacken, einmal allen Sourcen separat den JAR Files zugewissen und gut ist).
Nun ist der Ablauf so: Ich bearbeite sagen wir 10 Klassen in einem Projekt und will diese nun ausführen/debuggen. Dafür wechsle ich (nach JARfile erstellen/ANTScript) ins "Ausführ"-Projekt, öffne dort die gleichen Klassen fürs debuggen und starte die Anwendung. Nun habe ich jede Klasse mit gleichem Namen und gleichem Inhalt schon 2mal offen.
-> Um die Übersicht zu wahren müsste ich also zuerst die ersten 10 Klassen schliessen und nach dem debuggen die zweiten 10 Klassen schliessen und die ersten wieder öffnen. Natürlich ist das möglich, aber total umständlich, gerade auch weil eclipse die Klassen ja immer am Fileanfang öffnet und nicht in der Zeile in der man war.
Vor eclipse habe ich JBuilder2006 benutzt und da war es so, dass man auch eine Auflistung aller Projekte hatte, aber wenn man ein Projekt auswählt nur die Klassen aus diesem Projekt im Reiter aufgeführt werden.
Ich denke langsam, dass der Weg wie wir die Software builden für eclipse völlig falsch ist. Aber ob es so einfach wird alles umzustellen um direkt in den Projekten und vorallem auch projektübergreifend zu debuggen weiss ich nicht.

Soviel mal dazu..

Bei den Porjekten die sehr ähnlich sind (diese gehören nicht zur oben genannten Software) bringts dieser "Toggle Breadcrumb" Button ;) thx @ Oliver

@vfl_freak: Konsolenfester von Webstart? Ich glaube nicht. Ich meine die ganz normale Konsole die für die Standartausgabe für aus eclipse gestarteten Anwendungen benutzt wird.
@Oliver: Gleichzeitig laufen 2, wenns hoch kommt 3. Allerdings starte ich auch gerne kleine Hilfstools direkt aus der IDE, bei denen ich die Konsolenausgabe nicht bräuchte (Davon JARs zu machen und separat zu starten bringts auch nicht, denn die Tools sind sagen wir mal prealpha und bei den meisten muss man erst schnell was im Code ändern bevor man sie startet).



Habe noch eine Frage:
4. Wie sucht ihr Referenzen zu einem Objekt? Ich mache das im Moment indem ich zuerst Links das Objekt anklicke und dann Rechtsklick*->References->Hirarchy.
Nun bekomme ich im Search Fenster schön zuerst den Packagename der aufklappbar ist, dann die Klasse (aufklappbar) und dann die Funktion. Die Funktion ist bei mir aber nicht aufklappbar. da steht dann einfach was wie "function(arg) (12 matches)". Kann man das ihrgendwie umstellen dass man die einzelnen matches anklicken und im Code hinspringen kann? Bei Funktionen mit mehreren 100 Zeilen bringt mir sonst diese Suche auch nicht so viel..

Grüsse
jeipack


*: Dass man zuerst den Courser mit Linksklick an den Ort an dem man Rechtsklick machen will bringen muss ist auch n bisschen lasch..
 
Hi Leute
Erstmal vielen Dank für die Antworten.
Vielleicht hätte ich sagen sollen, dass viele der offenen Projekte zur selben Software gehören. Um die Software auszuführen erstelle ich erst das JAR des bearbeiteten Projekts, führe ein ANTScript aus welche die jeweils neuste compilierte Version der JAR Files richtig zusammenkopiert und starte die Software in einem extra fürs Ausführen und Debuggen eingerichteten Projekt (Punkt 3 bezieht sich auf dieses Projekt, aber der Punkt kann man abhacken, einmal allen Sourcen separat den JAR Files zugewissen und gut ist).
Nun ist der Ablauf so: Ich bearbeite sagen wir 10 Klassen in einem Projekt und will diese nun ausführen/debuggen. Dafür wechsle ich (nach JARfile erstellen/ANTScript) ins "Ausführ"-Projekt, öffne dort die gleichen Klassen fürs debuggen und starte die Anwendung. Nun habe ich jede Klasse mit gleichem Namen und gleichem Inhalt schon 2mal offen.
-> Um die Übersicht zu wahren müsste ich also zuerst die ersten 10 Klassen schliessen und nach dem debuggen die zweiten 10 Klassen schliessen und die ersten wieder öffnen. Natürlich ist das möglich, aber total umständlich, gerade auch weil eclipse die Klassen ja immer am Fileanfang öffnet und nicht in der Zeile in der man war.
Vor eclipse habe ich JBuilder2006 benutzt und da war es so, dass man auch eine Auflistung aller Projekte hatte, aber wenn man ein Projekt auswählt nur die Klassen aus diesem Projekt im Reiter aufgeführt werden.
Ich denke langsam, dass der Weg wie wir die Software builden für eclipse völlig falsch ist. Aber ob es so einfach wird alles umzustellen um direkt in den Projekten und vorallem auch projektübergreifend zu debuggen weiss ich nicht.

Soviel mal dazu..
Wow, selten sowas umständliches gehört ;). Reicht es nicht einfach die Abhängigkeiten der Projekte untereinander über den BuildPath (Tab "Projects") festzulegen? Damit werden die Sachen zusammen kompiliert und Eclipse schnallt auch das in Projekt B die Sourcen zur "Lib" in Projekt A liegen.

Auch wenn es Aufwand mit sich bringt, das Buildsystem gerade zu ziehen. Nichts ist wichtiger als schnelles Reibungsloses arbeiten. Überleg mal wiviel Zeit für das ständige bauen, packen öffnen schließen usw. draufgeht.

Habe noch eine Frage:
4. Wie sucht ihr Referenzen zu einem Objekt? Ich mache das im Moment indem ich zuerst Links das Objekt anklicke und dann Rechtsklick*->References->Hirarchy.
Nun bekomme ich im Search Fenster schön zuerst den Packagename der aufklappbar ist, dann die Klasse (aufklappbar) und dann die Funktion. Die Funktion ist bei mir aber nicht aufklappbar. da steht dann einfach was wie "function(arg) (12 matches)". Kann man das ihrgendwie umstellen dass man die einzelnen matches anklicken und im Code hinspringen kann? Bei Funktionen mit mehreren 100 Zeilen bringt mir sonst diese Suche auch nicht so viel..
CTRL-SHIFT-> References in Workspace (für Typen)
CTRL-ALT-H -> Von wo wird die gerade eben selektierte Methode gerufen?
CTRL-T -> Zeigt alle implementierungen einer Interfacemethode an

Das sind so die üblichen Verdächtigen beim Navigieren im Code.

Gruß
Ollie
 
Wow, selten sowas umständliches gehört ;).
Glaub mir geht mir genau gleich ;)
Ich glaube das beste wäre echt das ganze Umzubauen. Mal schauen was Chefe dazu sagen wird.

CTRL-SHIFT-> References in Workspace (für Typen)
CTRL-SHIFT-G <-- G vergessen oder?
Bei mir kommt dann das:
Screenshot_Search
Das erste geschwärzte ist der Projektname und das zweite der Packagename.
Nun weiss ich also dass das gesuchte in der Funktion read() 3mal vorkommt, aber ich weiss nicht wo. Wenn du jetzt eine grosse Funktion hast, wie gehst du da vor?
--> Wie ich gerade sehe, sind die Stellen nach dem Suchen Links mit einem Pfeil markiert und Rechts gibt es auch Marker. Das ist nicht das höchste aller Gefühle, aber es geht :) Bei der Call Hierarchy (CTRL-ALT-H) Hat man ja rechts die Auflistung in welcher Linie es aufgerufen wurde und kann durch einen Doppelklick gleich dahin springen, das wäre mir für die Suche natürlich viel lieber ;)

Schönes Wochenende

PS: Schöne Signatur ;)
 
Moin,

zu (4): benutze manchmal einen ganz dummen Trick :suspekt:
Einfach in der Deklaration den entsprechenden Bezeichner ändern (bspw. ein 'X' dahintersetzen) und schon zeigen alle zugehörigen Stellen einen Fehler und man kann ruck-zuck hinspringen :p
Nicht sehr elegant, aber bei sehr langen Sourcen, wie ich sie hier habe, recht flott ....

Gruß
Klaus
 
Zurück