Eclipse Eclipse ist eine IDE (Integrierte Entwicklungsumgebung), die speziell auf das Programmieren in Java zugeschnitten (und auch selbst in Java geschrieben) ist. Eine solche IDE vereint die Funktionalität von verschiedenen zum Programmieren notwendigen Werkzeugen wie Editor, Compiler und Interpreter unter einer Oberfläche. Außerdem werden die meisten Syntax- und bis zu einem gewissen Grad auch semantische Fehler schon während des Schreibens am Quellcode und nicht erst beim Übersetzen bemerkt. Es sollte betont werden, dass Eclipse keine fertigen Algorithmen zur Verfügung stellt. Das heißt, man wird in keinster Weise von der Notwendigkeit entbunden, sinnvolle und effektive Methoden zur Behandlung von Problemen - die ja das eigentliche Thema der CoMa-Vorlesung sind - zu suchen und zu verstehen. Eclipse starten Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl eclipse & eingibt. Das & sorgt dafür, dass Eclipse im Hintergrund gestartet wird und man die Shell währenddessen weiter verwenden kann; im Home-Verzeichnis deshalb, weil es Eclipse sonst nicht schafft, bereits angelegte Programme wieder zu finden. Nach (hoffentlich) nicht allzu langer Zeit erscheint ein Fenster wie dieses auf dem Bildschirm. Die Anordnung der kleinen Fenster innerhalb des großen kann dabei beim ersten Start etwas anders aussehen. Außerdem wird im Editor-Fenster eine mehr oder weniger informative Welcome-Seite erscheinen, die man durchlesen, aber auch einfach schließen kann. Beim Anlegen des ersten Java-Projects wird dann standardmäßig auf das Java-Layout umgeschaltet, es sei denn, man verbietet es explizit. Projects Eclipse verwaltet die geschriebenen Programme in sogenannten Projects. In jedem Project können dabei mehrere Java-packages stehen, die selbst wiederum viele Klassen enthalten können. Darüberhinaus können einem Project 1
weitere Ressourcen, wie etwa Bibliotheken zugeordnet sein jedem neu erstellten Project ist z.b. automatisch die verwendete Java-Bibliothek zugeordnet. Es ist nützlich zu wissen, wo Eclipse die verwalteten Programme aufbewahrt. Standardmäßig wird dazu unter Unix-Systemen das Unterverzeichnis workspace des Verzeichnisses benutzt, aus dem Eclipse gestartet wurde (deshalb sollte man es auch immer im gleichen Verzeichnis, am besten immer im Home-Verzeichnis starten). Innerhalb von workspace/ gibt es für jedes Project ein weiteres Verzeichnis, in dem schließlich die enthaltenen Quellcode-Dateien gespeichert sind. Auf diese Verzeichnisse hat man natürlich auch außerhalb von Eclipse (z.b. mit Hilfe einer Shell) Zugriff. Neue Projects anlegen Ein neues Project anlegen kann man mit File New Project... In dem daraufhin erscheinenden Dialog braucht man zunächst nur auf Next> zu klicken, im nächsten Dialog einen netten Namen für das Project anzugeben und Finish anzuwählen. Daraufhin sollte das neu erstellte Project im Fenster Package Explorer auftauchen. Durch Klicken auf den kleinen Pfeil vor dem Namen kann man den Eintrag expandieren und sieht etwas genauer, was alles so im Project enthalten ist. Sollten zufälligerweise Dateien enthalten sein, kann man diese mit einem Doppelklick öffnen und editieren. Vorhandene Quellcode-Dateien in ein Project einbinden Hat man eine Datei, die Java-Quellcode enthält von irgendwoher bekommen (z.b. von der CoMa-CD oder von http://www.math.tu-berlin.de/ moehring/coma/java-programme/) und möchte sie in einem bereits existierenden Project verwenden, dann kann man sie in dieses einbinden. Dazu öffnet man zunächst das Kontextmenü des Projects (oder Packages), in das die Datei eingebunden werden soll, indem man mit der rechten Maustaste auf den entsprechenden Eintrag im Package Explorer klickt. Durch Auswählen des Punkts Import... gelangt man in einen Dialog, aus dem man zunächst den Punkt File System auswählt und auf Next> klickt. Im folgenden Fenster kann man die Dateien, die eingebunden werden sollen, aus dem Dateisystem auswählen. Evtl. muß man erst einmal mit Browse... ein sinnvolles Verzeichnis aussuchen, aus dem man dann in den beiden mittleren Bereichen Dateien anwählen kann. 2
Mit Eclipse programmieren Der immer wiederkehrende Arbeitsablauf beim Programmieren sieht in der Regel so aus: Quellcode erstellen und/oder editieren Teile des Codes compilieren Programm starten und testen Diese Arbeiten können weitestgehend innerhalb von Eclipse erledigt werden. Dabei sind die verschiedenen Bereiche des Hauptfensters nützlich. Quellcode editieren Die in einem Project enthaltenen Quellcode-Dateien (zu erkennen an der Endung.java im Package Explorer) können im zentralen Editor-Fenster editiert werden. Falls ein Project noch keine Dateien enthält, kann man neue anlegen, indem man aus dem Kontextmenü des Projects (oder Packages) im Package Explorer New File auswählt. In dem erscheinenden Dialog kann man festlegen, zu welchem Project oder Package die neue Datei gehören und wie sie heißen soll; ein Klick auf Finish legt die Datei an und öffnet sie auch gleich im Editor. Wenn man schon weiß, ob die neu anzulegende Datei eine Klasse oder ein Interface enthalten soll, kann man auch den entsprechenden Punkt aus dem Kontextmenü auswählen und dann einige zusätzliche Einstellungen vornehmen. Damit bekommt man eine neue Datei, die bereits einige Standardzeilen enthält und erspart sich ein bißchen Schreibarbeit. 3
Beim Editieren erhalten die verschiedenen Textteile unterschiedliche Farben und Einrückungen, die sich aus ihrer Bedeutung für den Code ableiten und sich während des Schreibens auch häufig ändern. Es kann auch vorkommen, daß der Teil des Textes, der gerade editiert wird, zunächst als Fehler markiert und kurz darauf wieder ohne Markierung dargestellt wird. Die Darstellung des Quellcodes ist also in ständiger Wandlung, was einen aber nicht abschrecken sollte. In regelmäßigen (nicht zu langen!) Abständen sollte die editierte Datei gespeichert werden. Das geht durch Klicken auf das Diskettensymbol am oberen Rand des Fensters. Dabei versucht Eclipse automatisch, die gespeicherte Datei zu compilieren. Sollten dabei Fehler auftreten, werden diese im Tasks-Fenster unten angezeigt und müssen, bevor das Programm laufen kann, berichtigt werden. Programme starten Falls die editierte Datei ein lauffähiges Programm ist (d.h. ein Applet ist oder eine main-methode hat), kann es innerhalb von Eclipse ausgeführt werden. Dazu braucht man für dieses Programm eine Run configuration, die man mit definiert. Run Run... 4
Die in der Vorlesung vorkommenden Programme sind zunächst alles Applets, daher sollte es reichen, in der Liste Applet anzuwählen, mit New eine neue Run configuration zu erstellen und die von Eclipse automatisch eingesetzten Werte durch Drücken auf Run zu akzeptieren. Nach einer kurzen Weile öffnet sich dann das Applet im Applet Viewer und man kann es ausführlich testen. Hat man einmal eine Run configuration für ein Programm definiert, kann es in Zukunft einfach durch Auswahl der Programmdatei aus dem Run-Menü (das Icon mit dem rennenden Menschen in der Taskleiste oben) gestartet werden. Quellcode-Dateien kopieren und umbenennen Oftmals will man eine schon existierende Quellcode-Datei als Grundlage für eine Datei in einem anderen Project verwenden. Dazu kann man die Datei per copy & paste im Package Explorer folgendermaßen umkopieren: zunächst mit der rechten Maustaste die bereits existierende Datei anklicken, aus dem Menü Copy wählen, das Ziel -Project mit der rechten Maustaste anklicken und Paste aus dem Kontextmenü wählen. Wenn die neue Datei anschließend einen neuen Inhalt bekommt, empfiehlt es sich natürlich, die Datei umzubenennen. Das kann mit Refactor Rename 5
aus dem Kontextmenü erledigt werden. Dabei sollte man allerdings auf eines achten: in Java muss eine Quellcode-Datei genauso heißen wie die in ihr definierte Klasse. Daher erlaubt Eclipse nicht, eine Datei umzubenennen, wenn in ihr eine Klassendefinition steht, die nicht mit dem neuen Dateinamen übereinstimmt. Die Lösung des Problems: man ändert einfach zuerst den Klassennamen im Quellcode und danach den Dateinamen. Noch eleganter ist, den Klassennamen im Quellcode mit Refactor Rename zu ändern das ändert automatisch auch den Dateinamen und zusätzlich noch alle Referenzen auf diese Klasse. 6