Cover

Thomas Künneth

Eclipse

Kennenlernen. Verstehen. Effizient nutzen.

Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.

Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Bibliografische Information der Deutschen Nationalbibliothek:

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Lektorat: Brigitte Bauer-Schiewek
Copy editing: Petra Kienle, Fürstenfeldbruck
Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de
Umschlagrealisation: Stephan Rönigk
Gesamtherstellung: Kösel, Krugzell
Ausstattung patentrechtlich geschützt: Kösel FD 351, Patent-Nr. 0748702

Print-ISBN: 978-3-446-45466-8
E-Book-ISBN: 978-3-446-45729-4

Font License Zurück zum Impressum

Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

Für Moni

Inhalt

Titelei

Impressum

Widmung

Inhalt

Vorwort

Einleitung

1 Hands-on Eclipse

1.1 Java und Eclipse installieren

1.1.1 Installation von Java

1.1.2 Installation von Eclipse

1.1.3 Der erste Start

1.2 Das erste eigene Projekt

1.2.1 Ein neues Projekt anlegen

1.2.2 Ein erster Blick auf die Projektverwaltung

1.3 Ein Rundgang durch die IDE

1.3.1 Die Hilfefunktionen von Eclipse

1.3.2 Verfügbare Java-Laufzeitumgebungen anzeigen und bearbeiten

1.3.3 Ein neuer Look

1.4 Zusammenfassung

2 Arbeiten mit Eclipse

2.1 Perspektiven, Sichten und Editoren

2.1.1 Die Workbench

2.1.2 Sichten

2.1.3 Editoren

2.1.4 Perspektiven

2.2 Java-Programme eingeben und bearbeiten

2.2.1 Einstellungen vornehmen

2.2.2 Der Java-Editor

2.2.3 Navigation

2.2.4 Komfortabel arbeiten

2.3 Suchen, ersetzen und umgestalten

2.3.1 In und nach Dateien suchen

2.3.2 Suchen und Ersetzen im Quelltext

2.3.3 Refactoring

2.4 Zusammenfassung

3 Arbeitsbereiche und Projekte

3.1 Der Arbeitsbereich

3.1.1 Arbeitsbereiche anlegen und wechseln

3.1.2 Im Arbeitsbereich abgelegte Informationen

3.1.3 Verknüpfte Ressourcen

3.2 Die Projektverwaltung

3.2.1 Verschiedene Arten von Projekten

3.2.2 Projekte verwalten

3.2.3 Das Menü „Project“

3.3 Komplexe Projekte

3.3.1 Der Build Path

3.3.2 Bibliotheken

3.3.3 Launch Configurations

3.4 Maven und externe Tools

3.4.1 Maven

3.4.2 Externe Tools

3.5 Zusammenfassung

4 Fehlersuche und Test

4.1 Visuelles Debuggen

4.1.1 Ein erstes Beispiel

4.1.2 Die Sichten der Perspektive „Debug“

4.2 Konzepte und Vorgehensweisen

4.2.1 Architektur des Eclipse Debuggers

4.2.2 Breakpoints

4.3 Fortgeschrittene Debug-Techniken

4.3.1 Bedingte Programmunterbrechungen

4.3.2 Kontrollierte Einzelschrittverarbeitung

4.3.3 Änderungen vornehmen

4.4 Unit-Tests

4.4.1 JUnit im Überblick

4.4.2 Weitere JUnit-Funktionen

4.5 Zusammenfassung

5 Im Team arbeiten

5.1 Git einrichten

5.1.1 Git unter Windows installieren

5.1.2 Git unter Linux installieren

5.1.3 Git unter macOS installieren

5.2 Mit Repositories arbeiten

5.2.1 Ein bestehendes Repository hinzufügen

5.2.2 Änderungen vornehmen und widerrufen

5.3 Die Perspektive „Team Synchronizing“

5.3.1 Die Sicht „Synchronize“

5.3.2 Compare Editor

5.4 Weitere Repository-bezogene Funktionen

5.4.1 Informationen zu einem Repository

5.4.2 Verbindung zu einem Repository trennen

5.5 Zusammenfassung

6 Webservices mit Spring Boot

6.1 Benötigte Pakete installieren

6.1.1 Eclipse Marketplace

6.1.2 Neue Software mit „Install New Software“

6.2 Einen Webservice entwickeln

6.2.1 Ein Spring-Starter-Projekt anlegen

6.2.2 Den Webservice implementieren

6.3 Den Webservice testen

6.3.1 Einfache Browser-Aufrufe

6.3.2 Webservices mit HTTP4e testen

6.4 Zusammenfassung

7 Eine JavaFX-Anwendung entwickeln

7.1 e(fx)clipse

7.1.1 Benötigte Pakete installieren

7.1.2 Ein JavaFX-Projekt anlegen

7.2 Die Benutzeroberfläche

7.2.1 Eine FXML-Datei erstellen und bearbeiten

7.2.2 Einen Controller implementieren

7.3 Die Teile verbinden

7.3.1 Einen Webservice aufrufen

7.3.2 Das fertige Programm paketieren

7.4 Zusammenfassung

8 Webanwendungen mit JavaScript

8.1 Web Developer Tools

8.1.1 Installation

8.1.2 Ein Projekt anlegen

8.1.3 Node.js

8.2 Angular

8.2.1 Angular Eclipse installieren

8.2.2 Zahlenraten mit Angular

8.3 Zusammenfassung

Literatur

Vorwort

Nach Callisto, Europa, Ganymede, Galileo, Helios, Indigo, Juno, Kepler, Luna, Mars, Neon und Oxygen ist am 27. Juni 2018 mit Photon das 13. Simultaneous Release von Eclipse erschienen. Mit diesem Buch möchte ich Sie praxisgerecht und ohne störendes Beiwerk in die Bedienung dieser mächtigen Entwicklungsumgebung einführen. Sie lernen Eclipse so kennen, wie es sich aktuell präsentiert. Nicht nur Eclipse entwickelt sich stetig weiter, auch Java wird kontinuierlich aktualisiert. Die Entwicklungsumgebung ist bestens für Java 10 gerüstet. Deshalb basiert mein Buch auf dieser Version.

In den letzten Jahren hat sich JavaScript zu einer der am häufigsten für den Bau von Frontends genutzten Programmiersprache entwickelt. Auch wenn Sie die Geschäftslogik Ihrer Anwendungen in Java realisieren, ist es für Sie sicher interessant zu lernen, wie Sie Eclipse auch in diesem Bereich möglichst optimal nutzen können. Deshalb zeige ich Ihnen, wie Sie JavaScript und Angular einsetzen, um die Benutzeroberfläche für den Zugriff auf einen Webservice zu implementieren.

Ich wünsche Ihnen viel Freude bei der Arbeit mit diesem Buch!

Nürnberg, Frühjahr 2019

Thomas Künneth

Einleitung

Im Laufe der Jahre hat sich Eclipse zu einer der bedeutendsten Entwicklungsumgebungen für die Java-Programmierung entwickelt. Sehr wahrscheinlich haben Sie dieses Buch zur Hand genommen, weil Sie sich für diesen Aspekt des Produkts interessieren.

Eclipse ist aber auch der Name eines Projekts, das sich ganz allgemein der Schaffung von Open-Source-Tools und -Frameworks verschrieben hat, unabhängig von bestimmten Sprachen oder Technologien. Es fasst zahlreiche Teilprojekte, die letztlich die eigentlichen Werkzeuge (beispielsweise die Java-IDE) implementieren, unter einem Dach zusammen. Die aus dem Eclipse Consortium hervorgegangene Eclipse Foundation, eine gemeinnützige Organisation, kümmert sich seit 2003 um die Weiterentwicklung von Eclipse.

Eclipse ist der Nachfolger von Visual Age for Java. Visual Age1 war eine integrierte Entwicklungsumgebung, die für zahlreiche Plattformen und Programmiersprachen zur Verfügung stand. Die meisten Mitglieder der Visual-Age-Produktlinie wurden in Smalltalk realisiert. Die IBM-Version dieser Sprache wurde von der ehemals eigenständigen Firma Object Technology International (OTI) implementiert. OTI (die mittlerweile in IBM aufgegangen war) realisierte auch die erste Version von Eclipse. Im November 2001 wurde das bereits an­gesprochene Konsortium gegründet, das die Weiterentwicklung als quelloffene Software vorantreiben sollte.

In den ersten Versionen war Eclipse hauptsächlich eine durch Plug-ins erweiterbare Java-IDE. Mit der Version 3.0 wurde ein Paradigmenwechsel vollzogen. Seitdem bildet eine Implementierung der OSGi Service Platform das Fundament der Eclipse-Architektur und stellt Plug-ins als gleichberechtigte Einheiten in das Zentrum der Plattform.

Verschiedenste Projekte nutzen diese Infrastruktur und den durch die Eclipse-Plattform zur Verfügung gestellten Werkzeugkasten. Es ist einleuchtend, dass solche Abhängigkeiten zu Problemen in Form von Inkompatibilitäten führen können, wenn sich die einzelnen Teile unterschiedlich schnell entwickeln. Aus diesem Grund gibt es seit 2006 sogenannte Simultaneous Releases, die Schlüsselprojekte in miteinander kompatiblen Versionen bündeln. Die folgende Tabelle zeigt das Datum der Veröffentlichung und die Zahl der teilnehmenden Projekte.

Bislang erschienene Eclipse-Versionen:

Name

Version

Veröffentlichungsdatum

Projekte

Callisto

3.2

30. 06. 2006

10

Europa

3.3

29. 06. 2007

21

Ganymede

3.4

25. 06. 2008

23

Galileo

3.5

24. 06. 2009

33

Helios

3.6

23. 06. 2010

39

Indigo

3.7

22. 06. 2011

62

Juno

4.2/3.8

27. 06. 2012

71

Kepler

4.3

26. 06. 2013

72

Luna

4.4

25. 06. 2014

76

Mars

4.5

24. 06. 2015

79

Neon

4.6

22. 06. 2016

84

Oxygen

4.7

28. 06. 2017

82

Photon

4.8

27. 06. 2018

85

Vielleicht fragen Sie sich, wie es zu den Namen der einzelnen Releases kam. Das englische Wort eclipse bedeutet Finsternis oder Verdunkelung. Die Astronomie kennt Sonnen- und Mondfinsternisse. Insofern „zwingt“ die IDE selbst fast schon dazu, Begriffe im Zusammenhang mit Planeten und Sternen zu verwenden. Kallisto, Europa und Ganymed sind Jupitermonde. Ihr Entdecker (Galileo Galilei) wird mit Eclipse 3.5 geehrt. Es folgen Helios, Indigo, Juno usw. Ab Galileo entsprechen die Anfangsbuchstaben eines Releases der Reihenfolge im Alphabet. Eine Besonderheit an Juno war übrigens, dass zum ersten Mal die Eclipse-Plattform-Version 4 ausgerollt wurde. Sie enthielt eine ganze Reihe tiefgreifender Veränderungen. Um die Kompatibilität mit bestehenden Plug-ins zu gewährleisten, stand eine Version auf der Basis von Eclipse 3.8 zum Download bereit. Mittlerweile ist die Plattform-Version 4 stabil und schnell.

Die Zahl der Projekte eines Sammel-Releases macht deutlich, wie viele Bereiche der Softwareentwicklung Eclipse abdecken kann. Vielleicht flößt diese Tatsache aber auch ein wenig Furcht ein. Ist dieser Werkzeugkasten überhaupt noch beherrschbar? Findet man sich im Dschungel der Plug-ins und Projekte noch zurecht?

Über dieses Buch

In diesem Buch stelle ich Ihnen Eclipse 4.8 als eine Entwicklungsumgebung für Java-Programmierer vor. Zwar lassen sich grundlegende Konzepte wie Perspektiven oder Sichten auch auf andere Einsatzgebiete übertragen, auf das Schreiben von Programmen in anderen Sprachen wie C oder C++ gehe ich allerdings nicht ein. Eine Ausnahme bildet das abschließende Kapitel 8, „Webanwendungen mit Angular“. Hier schlage ich den Bogen zu moderner Webentwicklung mit den dort dominierenden Sprachen JavaScript und TypeScript.

Das Ziel dieses Buchs ist, Sie in den folgenden acht Kapiteln mit den Möglichkeiten vertraut zu machen, die Ihnen die IDE bietet. Allerdings ist dieses Buch kein Java-Lehrgang. Ich werde also Konzepte wie Fehlersuche oder Refactoring nur so weit vorstellen, wie es für das weitere Verständnis erforderlich ist. Mein Hauptaugenmerk liegt darauf, Ihnen zu zeigen, wie Sie mit Eclipse effizient arbeiten können. Selbstverständlich müssen Sie kein Java-Experte sein, um meinen Erklärungen folgen zu können. Grundlegende Kenntnisse der Programmiersprache sollten Sie aber mitbringen.

Die einzelnen Kapitel bilden in sich geschlossene Einheiten. Sie müssen das Buch also nicht von Buchdeckel zu Buchdeckel durchlesen, sondern können gezielt Bereiche auswählen, über die Sie sich ausführlicher informieren möchten. Eine Ausnahme bildet Kapitel 1, „Hands-on Eclipse“. Hier wird beschrieben, wie Sie die Java-Laufzeitumgebung, das Java Development Kit und Eclipse auf Ihrem Rechner einrichten (jeweils für die Betriebssysteme Windows, Linux und macOS). Im zweiten Teil dieses Kapitels legen Sie Ihr erstes Projekt an, schreiben ein kleines Programm und führen es aus. Schließlich machen Sie einen kurzen Rundgang durch die IDE und lernen das Eclipse-Hilfesystem kennen.

In Kapitel 2, „Arbeiten mit Eclipse“, mache ich Sie mit wichtigen Grundlagen vertraut. Sie lernen die Workbench, Perspektiven und Sichten kennen. Außerdem erfahren Sie, wie Sie komfortabel Java-Programme eingeben und auch in umfangreichen Quelltexten den Überblick behalten. Mehr und mehr an Bedeutung gewinnt das sogenannte Refactoring. Was es damit auf sich hat und wie Sie Eclipse hierbei unterstützt, wird in Abschnitt 2.3, „Suchen, ersetzen und umgestalten“, beschrieben.

Auch in Kapitel 3, „Arbeitsbereiche und Projekte“, lernen Sie wichtige Konzepte der IDE kennen. Ich stelle Ihnen den Arbeitsbereich als eine Art Container für Projekte vor und mache Sie mit der Projektverwaltung von Eclipse vertraut. In diesem Zusammenhang lernen Sie beispielsweise auch, wie Sie externe Tools einbinden.

Praktisch genauso wichtig wie die eigentliche Implementierung sind Fehlersuche und Testen. Im gleichnamigen Kapitel 4, „Fehlersuche und Test“, lernen Sie daher die Architektur des Eclipse Debuggers kennen. Außerdem zeige ich Ihnen hier, wie Sie die unzähligen Möglichkeiten, die Ihnen diese Komponente bietet, effizient einsetzen, um Fehler einzukreisen und zu eliminieren. Die am leichtesten zu behebenden Fehler sind diejenigen, die gar nicht erst gemacht werden. Unit Tests helfen, schon während der Implementierung die Korrektheit einzelner Programmteile sicherzustellen. Auch diesen Themenkomplex beschreibe ich ausführlich.

In Kapitel 5, „Im Team arbeiten“, stelle ich Ihnen das derzeit am häufigsten eingesetzte System zur Versionsverwaltung vor: Git. Sie erfahren unter anderem, wie Sie auf bestehende Repositories zugreifen. Selbstverständlich lernen Sie auch den Umgang mit den wichtigen Konzepten Branching und Merging innerhalb von Eclipse.

Die drei letzten Kapitel dieses Buchs greifen die bisher vermittelten Grundlagen auf und beschreiben die Entwicklung eines Webservices, sowie dessen Nutzung. Kapitel 6, „Webservices mit Spring Boot“, zeigt Ihnen, wie Sie die mächtige Plugin-Sammlung Spring Tool Suite installieren, und mit ihrer Hilfe einen Spring-Boot-basierten Zahlenrateservice programmieren. Quasi nebenbei werfen Sie auch einen Blick auf den Test von RESTful Webservices.

Kapitel 7, „Eine JavaFX-Anwendung entwickeln“, stellt Ihnen e(fx)clipse vor, mit dessen Hilfe Sie in Eclipse JavaFX-Anwendungen erstellen und ausführen können. Sie entwickeln ein kleines Programm, das den Webservice aus Kapitel 6 konsumiert.

Im abschließenden Kapitel 8, „Webanwendungen mit Angular“, wenden wir uns der modernen Webentwicklung zu. Sie entwickeln auch hier eine Anwendung, die den Zahlenrateservice aus Kapitel 6 aufruft. Sie ist aber mit Angular erstellt.

Danksagung

Dieses Buch hätte ohne die freundliche Unterstützung vieler Menschen nicht entstehen können. Mein herzliches Dankeschön gebührt den Mitarbeiterinnen und Mitarbeitern des Hanser Verlags, die mir stets mit Rat und Tat zur Seite standen.

Herzlichen Dank sage ich auch meinen Kolleginnen und Kollegen Isabella Scholz, Marco Schillinger und Alexander Zeitz, die während des Schreibens nicht nur ein Auge auf meine Manuskripte geworfen haben, sondern mit viel Akribie jedes Kapitel geprüft haben. Ihre Hinweise und Tipps konnten mehr als nur die eine oder andere Kante glätten.

Außerdem danke ich meiner Familie für ihre Liebe und Unterstützung, ihr Verständnis und ihre Geduld: Meiner Ehefrau Moni danke ich für das unermessliche Glück, das sie mir jeden Tag aufs Neue schenkt; meinen Eltern, Rudolf und Gertraud, für alles, was sie mir mit auf den Weg gegeben haben; und meinem Bruder Andreas für die vielen Dinge, die er mir ermöglicht hat.


1 http://en.wikipedia.org/wiki/VisualAge

1 Hands-on Eclipse