Advanced   Java   Services Eclipse FAQ Back Next Up Home

Das folgende ist kein Tutorial, sondern eine kleine alphabetisch geordnete FAQ-Liste. Es sollen hier nur einige nützliche Tipps gegeben werden.


Access restriction on class due to restriction on required library rt.jar

Diese Meldung bekommt man, wenn man eine interne Klasse verwenden will. Ein bekannter Fall ist die Klasse JdbcRowSetImpl aus dem Package com.sun.rowset. Will man ein Objekt vom Typ RowSet initialisieren, so braucht man eine Klasse, die dieses Interface implementiert. Die Klasse com.sun.rowset.JdbcRowSetImpl() ist zwar public, aber nicht Bestandteil der API und deshalb ist das Statement JdbcRowSet jdbcRowSet = new com.sun.rowset.JdbcRowSetImpl(); nicht compilierbar. Eclipse bietet die Möglichkeit diese Einschränkung für ein Projrkt oder auch global aufzuheben. Eine projektspezifische Einstellung ist hier vorzuziehen.

Project -> Properties -> Java Compiler -> Errors/Warnings -> Enable project specific settings (Checkbox aktivieren)

Herunterscrollen.

Forbidden reference (access rules) :  Dropdown Menu von Error auf Warning umstellen.

eclipse-restricted-api.jpg


Alte Farben und Layout von Indigo wiederherstellen

Juno und Kepler, die Nachfolgeversionen von Indigo kommen mit einem neuen Farblayout, das nicht jedermanns Geschmack ist. Auch ich finde das Layout von Indigo besser. Es gibt zwei Möglichkeiten, dies zu ändern und das alte Layout mit den alten Farben wiederherzustellen.

Der sanfte Weg geht über die Einstellungen in Eclipse.

Window -> Preferences -> General -> Appearance

eclipse-indigo-look-and-feel.jpg

Hier wählt man Classic und man hat annähernd das alte Layout.

Für den radikalen Weg beendet man Eclipse, geht ins Installationsverzeichnis von Eclipse und sucht das Verzeichnis css in

plugins\org.eclipse.platform_4.2.0.v201206081400\css

In diesem Verzeichnis liegen die Stylesheets für die verschiedenen Layouts. Wenn man dieses Verzeichnisses umbenennt, etwa in css.bak, so startet Eclipse nun mit dem originalen Layout von Indigo.

Siehe auch http://blog.sangupta.com/2012/08/change-eclipse-juno-ui-to-match-eclipse.html


Ansicht wiederherstellen

Die Ansicht in Eclipse bestehen immer aus mehreren Teilfenstern. Die Debugansicht beispielweise besteht aus fünf Fenstern von denen die meisten auch noch mehrere Tabs haben. Manchmal schließt man ein Teilfenster aus Versehen. Nicht jedes Teilfenster wird unter

Window -> Show View

angeboten. Einfacher ist folgendes

Window -> Reset Perspective...

Api anzeigen (F2 und SHIFT F2)

Den Namen einer Klasse oder Methode oder eines Feldes etc. markieren. Mit F2 erscheint ein großer Tooltip, der der den zugehörigen Auszug aus der API zeigt. Durch erneute drücken von F2 erhält der Tooltip den Fokus und man kann im Tooltip navigieren und Text markieren und kopieren. Mit Shift+F2 wird die komplette Klassendokumentation in einem eigenen Tab angezeigt. Beide Anzeigen werden über http realisiert, Eclipse holt sich die API von java.sun.com . Hat man keine Internetverbindung muß man über Window/Preferences den lokalen Speicherort der API angeben. Wie das genau geht, wird auf der nächsten Seite erklärt.


Assertions ein- und ausschalten
Projekt markieren -> Run -> Run Configurations -> Arguments

Automatisches Speichern vor Run
Window -> Preferences -> Run/Debug -> Launching -> 'Save required dirty editors before launching' -> Always auswählen

Bestimmte Ansicht wählen

Im wesentlichen muß man sich nur merken, daß Ansicht auf eclipsisch "Perspective" heißt. Also:

Window -> Open Perspective

Dann die Ansicht auswählen. Die Java-Perspective ist diejenige die wir brauchen. Sie wird auch dann oft verwendet wenn man Servlets bzw. JSP bzw. EJB entwickelt, obwohl es für diese Fälle eine eigene Ansicht (JavaEE) gibt.


Bibliothek anlegen

Für viele Projekte braucht man zusätzliche Java Archive (*.jar). Es ist praktisch sie in eigenen Bibliotheken abzulegen, dann kann man von jedem Projekt aus darauf zugreifen. Ich habe meine Bibliotheken in meinem Workspaceordner von Eclipse angelegt. Hier habe ich ein Verzeichnis libraries und darin dann für jede Bibliothek ein eigenes Verzeichnis in dem die .jar Dateien liegen. Das Beispiel legt eine Bibliothek für die Mojarra Archive an. Mojarra ist eine Implementierung der Java Server Faces Specification.

Eine Bibliothek legt man am besten zu einem bestehenden Projekt an. Sie ist dann aber auch für andere Projekte verfügbar, man muß sie nur dem jeweiligen Projekt hinzufügen.

Geöffnetes Projekt markieren -> Project -> Properties -> Java Build Path -> Libraries

create-library-01.jpg

Add Library

create-library-02.jpg

User Library, Next

create-library-03.jpg

User Libraries

create-library-04.jpg

New

create-library-05.jpg

Name für die neue Bibliothek eintragen, OK

create-library-06.jpg

Add Jars...

create-library-07.jpg

Verzeichnis heraussuchen in dem die Jars liegen (hier ist es nur eine Datei).

create-library-08.jpg

 

create-library-09.jpg

 

create-library-10.jpg

 

create-library-11.jpg


Browser wechseln

Eclipse hat als Voreinstellung den Systembrowser (IExplorer auf Windows). So wechselt man zu Firefox. Leider betrifft das nur den externen Browser. Den internen Browser zu wechseln ist in Eclipse nicht implementiert und nur über ein Plugin zu erreichen.

Window -> Preferences -> General

eclipse-change-browser-01.jpg

New...

eclipse-change-browser-02.jpg

Browse...

eclipse-change-browser-03.jpg

eclipse-change-browser-04.jpg


catch()-Block: Namen der Exceptionvariable ändern

Bei mir heißen alle Exceptions ex (und nicht e). So stellt man das um:

Window -> Preferences -> Code Style

eclipse-change-exceptionname.jpg


Code Style exportieren

Einen persönlichen Code Style kann man in einer xml-Datei speichern und dadurch in einen beliebigen Workspace importieren.

Window -> Preferences -> Java -> Code Style -> Formatter -> Export All

Code Style importieren
Window -> Preferences -> Java -> Code Style -> Formatter -> Import

Dateien von einem Projekt in ein anderes kopieren
Im Package Explorer die zu kopierende Datei im Projekt markieren -> Ctrl C
Das Zielprojekt markieren -> Ctrl V

Disable Camel Case Selection
Window -> Preferences -> Java -> Editor -> Smart caret Positioning

Checkbox aushaken.

eclipse-camelcase-selection.jpg


Eine externe Klasse in ein Projekt aufnehmen, die nur als .class Datei vorliegt.

Eclipse weigert sich .class-Dateien in ein Projekt einzufügen. Kopieren in das bin-Projektverzeichnis etwa nützt nichts, da die Datei nicht erkannt wird. Es gibt zwei Möglichkeiten, das Problem zu lösen. Beiden Varianten ist gemein, daß man auf ein externes Verzeichnis zugreifen muß, ein bestehendes Projektverzeichnis kann man nicht wählen:


Erste Lösung (Aufnehmen der class-Datei)

Man legt die class-Datei in ein beliebiges Nichtprojektverzeichnis. Von da aus kann man sie folgendermaßen in jedes Eclipse-Projekt aufnehmen:

Project -> Properties -> Java Build Path -> Libraries -> Add External Class Folder ->

Hier sucht man das Verzeichnis, in dem die class-Datei liegt und nimmt dann diesen Ordner auf.
nach dem bestätigen mit "ok" erscheint im Package Explorer dann ein neuer Eintrag mit
der Bezeichnung "Referenced Libraries".

Will man den Eintrag wieder entfernen (oder modifizieren) dann geht man den Menuweg wieder bis
"Libraries", markiert den entsprechenden Eintrag und wählt dann "remove" oder "edit".

Zweite Lösung (Aufnehmen eines Java-Archivs das die class-Datei enthält)

Man erzeugt aus der .class-Datei eine zip-Datei und ändert anschließend die Endung zu .jar . Damit hat man die Datei in ein (simples) Javaarchiv verwandelt. Diese jar-Datei legt man nun in ein beliebiges Nichtprojektverzeichnis. Von da aus kann man sie folgendermaßen in jedes Eclipse-Projekt aufnehmen:

Project -> Properties -> Java Build Path -> Libraries -> Add External Jars ->

Hier sucht man das Verzeichnis, in dem das Archiv liegt und nimmt dann das Archiv auf.
Im Package Explorer erscheint dann ein neuer Eintrag mit der Bezeichnung "Referenced Libraries"

Will man den Eintrag wieder entfernen (oder modifizieren) dann geht man den Menuweg wieder bis
"Libraries", markiert den entsprechenden Eintrag und wählt dann "remove" oder "edit".

Folding Einstellungen anpassen (z.Bsp. für Imports)

Voreinstellung für Importanweisungen ist der eingeklappte Zustand. Das spart zwar Platz ist aber bei der Beschäftigung mit unbekannten Klassen eher ein Lernhindernis. Diese Einstellungen kann man ändern. Man kann entweder Folding generell abschalten oder nur für bestimmte Codeteile.

Window -> Preferences -> Java -> Editor -> Folding

Formatierung einzeiliger Kommentare verhindern

Beim Formatiern mit Ctrl Shift F bricht Eclipse die einzeiligen Kommentare um auch wenn man die Zeilenlänge des Editors erhöht hat (siehe Zeilenlänge des Editors ändern). Abstellen kann man das wie folgt:

Window -> Preferences -> Java -> Formatter -> Edit -> Comments

Links unten auf der RegisterKarte Comments kann man die Zeilenlänge für den Kommentar einstellen.

eclipse-comment-settings.jpg


Formatieren von Code
Ctrl Shift F

Siehe auch das übernächste Kapitel über Hotkeys.


Getters und Setters generieren lassen
Die (private) Variable markieren -> Source Menu öffnen -> Generate getters und setters auswählen

Eclipse bietet für das Generieren von Getters und Setters kein Hotkey an, man kann sich aber selbst welche definieren, siehe hierzu Custom Hotkeys (selbstdefinierte Hotkeys).


Graphische Anwendung schließen, wenn noch kein Listener eingebaut ist

Konsole einblenden (siehe entsprechenden Punkt). Dann erscheint rechts ein kleines rotes Quadrat. Durch Anklicken des Quadrates schließt sich die graphische Anwendung.


Import generieren lassen

Innere Klasse durch Eclipse anlegen lassen

Projekt im Package Explorer markieren.

Rechte Maustaste liefert Kontextmenu -> New -> Class -> Enclosing Type anhaken.

Rechts daneben muß dann der Name der umschließenden Klasse eingegeben werden. Anschließend den Namen der inneren Klasse eingeben. Der Rest sollte klar sein.

Die entstehende innere Klasse wird an den Anfang der umschließenden Klasse gesetzt, noch vor dem privaten Datenteil, was (meiner Meinug nach) nicht der beste Ort ist. Eine Einfügung am Ende wäre besser. Markiert man nicht das Projekt, sondern gleich die Klasse, die die inner Klasse enthalten soll, so wird der Name gleich übernommen und man braucht nur noch "Enclosing Type" anhaken.


Interfaces implementieren lassen

Erste Möglichkeit (Interface sofort beim Anlegen der Klasse angeben)
File -> New -> Class

Im Dialog dann den Namen der Klasse eingeben und das Interface mit dem Add-Button aussuchen, Checkbox Inherited abstract Methods anhaken (!)

-> Finish

Zweite Möglichkeit (Name des Interfaces wurde per Hand im Code ergänzt)

Eclipse meldet einen Fehler indem es den Namen der Klasse rot unterringelt. Mit der Maus über dem Klassennamen hovern und warten bis das Quickfix erscheint. Das Angebot "Add unimplemented methods" annehmen.


Jar-Archiv (auch ausführbar) erzeugen

Projekt im Package Explorer suchen und markieren, dann

Rechtsmausclick -> Export..

Man kann dann wählen, ob man ein normales oder ein startbares Archiv anlegen will.


Javainterpreter für ein bestimmtes Projekt wechseln (etwa statt jawaw.exe java.exe)

Javaversion auswählen (etwa Java 7 statt Java 6)

Für ein bestimmtes Projekt

Projekt markieren, dann

Project -> Properties -> Java Compiler -> Enable Project specific settings -> Compiler compliance level

javaversionproperties.jpg

Hier dann die gewünschte Version auswählen.


Für den ganzen Workspace
Window -> Preferences -> Java -> Compiler -> Compiler compliance level

javaversionpreferences.jpg

Hier dann die gewünschte Version auswählen.


Kommentare (Auskommentieren von Bereichen)

CTRL + / kommentiert die Zeile aus, in der der Cursor steht. (Einkommentieren: nochmal CTRL + /) Mehrere Zeilen: Zeilen markieren, dann gleiches Kommando


Konsolfenster, getrennt nach Projekten

Eclipse schickt die Konsolausgaben mehrerer projekte auf dieselbe Konsole. Es kann vorkommen, daß man etwa die Konsolausgaben von zwei Projekten parallel verfolgen will. Dazu geht man wie folgt vor:

Hat mein ein Konsolfenster, so sieht man am rechten Rand eine kleine Toolbar mit einer Reihe von Symbolen. Hovert man über dem viertletzten, so bekommt man folgendes Tooltip.

secondconsole-1.jpg

Mit dem schwarzen Dreieck kann man ein kleines Dropdownmenü öffnen.

secondconsole-2.jpg

Anwählen von "New Console View" erzeugt ein weiteres Konsolfenster.

secondconsole-3.jpg

Startet man ein Projekt, so schickt Eclipse die Konsolausgaben jetzt auf beide Fenster.

secondconsole-4.jpg

Beim Start des nächsten Projekts werden zunächst wieder beide Fenster mit den neuen Ausgaben beschickt.

secondconsole-5.jpg

Das sechste Symbol von links auf der Toolbar ist aber ein Schalter, mit dem man zwischen den Ausgaben der einzelnen Programme durchwechseln kann.

secondconsole-6.jpg


Konsolfenster wieder einblenden

Es kann vorkommen, daß man die Konsole aus Versehen schließt. So bekommt man sie wieder:

Window -> Show View -> Console

Konsolfenster, Zeilenkapazität erhöhen

Die Voreinstellung für die Kapazität des Konsolfenster beträgt 1000 Zeilen bei einer Zeilenlänge von 80 Zeichen, also insgeamt 80000 Zeichen. Manchmal ist das zu wenig. Am einfachsten ist es hier, die Checkbox "Limit console output" auszuhaken.

Window -> Preferences -> Run/Debug -> Console

eclipse-capacity-of-console.jpg


Klassen aus einem anderen Projekt importieren

Siehe Packages aus einem anderen Projekt importieren


Konstruktoren erzeugen lassen

Beim Anlegen einer Klasse kann man sich bereits die Konstrukturen der Elternklasse auf die Kindklasse übertragen lassen. Eclipse kann aber noch mehr.


Konstruktoren der Superklasse nachträglich erzeugen lassen
Source Menu öffnen -> Generate Constructors from Superclass... anwählen.

Konstruktoren die Feldvariablen initialisieren erzeugen lassen
Variable markieren -> Source Menu öffnen -> Generate constructors using fields anwählen.

Hinweis: Mit Hilfe des dabei erscheinenden Dialogs kann man die Felder auswählen, die in der Parameterliste des Konstruktors erscheinen sollen, wählt man kein Feld aus, wird der Defaultkonstruktor erzeugt. Unter "Insertion point" erscheint eine Liste, in der man auswählen kann, wo der im Code die Konstruktoren erzeugt werden sollen.


Löschen der Run History

Eclipse speichert die Run Configurations auch dann noch, wenn man die Projekte selbst schon gelöscht hat. Das führt zu unnötig langen Listen, also weg damit.

Window -> Preferences -> General -> Startup and Shutdown -> Workspaces

Im Dialog findet man eine Tabelle mit den einzelnen Pfaden. Pfad markieren und löschen mit dem Remove-Button

Man kann auch mehrere Pfade markieren und gemeinsam löschen.


Methode aus Methodenaufruf generieren lassen

Eine ganz typische Situation: Hier fehlt mir ein Aufruf einer Methode, die es noch garnicht gibt.

Methodenaufruf codieren -> Fehlermeldung erscheint -> Mit der Maus über dem Namen hovern -> Quickfix bietet Create method an

Anschließend will Eclipse erzwingen, daß die Methode sofort codiert wird. Das kann man abstellen, besser ist es natürlich, dem Hinweis zu folgen.


Methoden aus Code extrahieren/generieren

Auch eine typische Situation: Also das gehört doch in eine Methode. Dafür gibt es ein sehr praktische Tastenkombination.

Codezeilen  markieren -> ALT Shift M

und es erscheint sinngemäß folgender Dialog

eclipse-extract-method.jpg


Methoden ordnen mit Hilfe des Outline-Fensters

Sobald man mehrer Methoden in einer Klasse geschrieben hat, sollte man sie thematisch ordnen. Hier hilft das Outlinefenster, das u.a. alle Methoden in einer Klasse anzeigt. Man markiert einfach die Methode und verschiebt sie. Eclipse übernimmt dann sofort die notwendigen Verschiebungen im Code.


Packages aus einem anderen Projekt importieren

Manchmal braucht man in einem Projekt Klassen, die in einem Package in einem anderen Projekt liegen. Sagen wir Projekt B braucht ein Package aus Projekt A. Dann:

Projekt B im Package Explorer markieren -> Project -> Properties -> Java Build Path -> Projects -> Add

Parameter an main übergeben
Projekt markieren. Run -> Run Configurations -> Tab Arguments auswählen

eclipse-main-param.jpg

Parameter im Textfeld unter "Program arguments" eintragen.


Rechtschreibprüfung abschalten

Eclipse hat eine Rechtschreibprüfung, die in der Grundeinstellung eingeschaltet ist. Dann werden unbekannte Wörter rot unterringelt. Das kann nützlich sein, aber auch störend. So schaltet man sie ab:

Window -> Preferences -> General -> Editors -> Text Editors -> Spelling -> [ ] Enable spell checking

Schriftgröße ändern
Window -> Preferences -> General -> Appearance -> Colors and Fonts

Hier findet man umfangreiche Einstellungsmöglichkeiten für Farben und Fonts für verschiedene Teile der Eclipseoberfläche.

eclipse-change-font.jpg


Shortcut für System.out.println();
sysout im Code schreiben, dann CTRL - Space.

Spracheinstellung ändern (Fehlermeldungen wieder auf Englisch)

Die JVM checkt unter der Kontrolle von Eclipse die lokale Spracheinstellung des Betriebssystems und gibt dann etwa Fehlermeldungen in der jeweiligen Landessprache. Mit z. Bsp. deutschen Fehlermeldungen googeln ist in der Regel nicht erfolgreich, allemal besser sind die originalen, also amerikanische Fehlermeldungen. Die folgenden Screenshots zeigen wie man die originalen Fehlermeldungen (wieder) herstellen kann.

Window -> Preferences -> Installed JREs

Markieren der Zeile in der Tabelle aktiviert u.a. den Editbutton.

eclipse-change-language-1.jpg

Der Editbutton führt uns zu einem weiteren Dialog. Hier können wir jetzt den Parameter -Duser.language=en an die VM übergeben.

eclipse-change-language-2.jpg



Suchen und Ersetzen in einer Code-Datei

Umbenennungen von Dateien, Methoden, Klassen

Datei umbenennen

In Java zieht die Umbennung eines Dateinamens meist eine ganze Reihe von Änderungen nach sich, da der Dateiname oft mit dem Klassennamen übereinstimmt (übereinstimen muß). Dies kann man in Eclipse recht komfortabel erledigen, da Eclipse Abhängigkeiten sucht und diese gleich mitumbenennt.

Dateiname im Package Explorer rechts markieren, rechte Maustaste liefert Kontextmenu -> Refactor -> Rename
Es gibt drei Checkboxen, die man anhaken kann. Die erste ist per default angehakt und aktualisert Referenzen.

Methode umbenennen

Ganz ähnlich geht man vor, wenn man eine Methode umbenennen möchte. Man markiert die Methode im rechten Outlinefenster.

Rechte maustaste liefert wieder Kontextmenu -> Refactor -> Rename

Auch hier wird man den Haken bei "Update references" nicht entfernen. Durch Ausprobieren findet man auch schnell heraus, was "Keep original method as delegate" bedeutet.


Innere Klasse umbenennen

Siehe Methode umbenennen.


"Verlorene" Projekte wieder in den Package Explorer aufnehmen

Wenn man ein Projekt aus dem Package Explorer entfernt kann man den Vorschlag es auch physikalisch zu löschen ablehnen. Um einen Wust von Projekten im Package Explorer zu vermeiden kann das durchaus sinnvoll sein. Leider kann man über das Menu Project -> Open Project nur Projekte öffnen, die im Package Explorer angezeigt werden. Wie man an die Anderen wieder rankommt folgt hier:

Rechtsmausklick auf der Fläche des Package Explorers -> Import -> General
dann im Dialogfenster auswählen:

"existing projects into workspace" -> next (button)

"select root directory" -> browse (button)

im dann erscheinenden Dateidialog den Eclipse Workspace raussuchen -> OK (Button)

dann werden alle Projekte angezeigt und man kann auswählen welche man in den Package Explorer aufnehmen will

-> Finish (Button)

Virtual Machine: Parameter übergeben
Projekt markieren. Run -> Run Configurations -> Tab Arguments auswählen

eclipse-main-param.jpg

Parameter im Textfeld unter "VM arguments" eintragen.


Workspace Dropdownliste bearbeiten
Workspace prompt on startup wiederherstellen
Windows -> Preferences -> General -> Startup and Shutdown -> Workspaces

eclipse-workspaceliste.jpg

Die Dropdownliste der Workspaces zeigt auch gelöschte Verzeichnisse noch an, was irreführend und lästig ist. Die Einträge werden in einer Datei mit dem Namen org.eclipse.ui.ide.prefs gespeichert. Diese Datei befindet sich im Ordner <ECLIPSE-HOME>\configuration\.settings. Man kann diese Datei auch mit einem beliebigen ASCII-Editor bearbeiten und das gelistete aber nicht mehr existierende Verzeichnis löschen.


Workspace Einstellungen speichern und auf einen anderen Workspace übertragen
File -> Export -> General -> Preferences

eclipse-workspacesettings1.jpg

Export all ist schon angehakt!

eclipse-workspacesettings2.jpg

Die Datei hat die Endung *.epf und wird im Verzeichnis <ECLIPSE-HOME> gespeichert. Von da aus kann man sie auch wieder in für einen neuen Workspace importieren.


XML default Editor ändern

Viele Entwickler bevorzugen einen ASCII-Editor an Stelle des XML-Editors, den Eclipse standardmäßig anbietet. So kann man das umstellen.

Window -> Preferences -> Editors -> File Associations

eclipse-change-xmleditor1.jpg

eclipse-change-xmleditor2.jpg

eclipse-change-xmleditor3.jpg


Zeilenlänge des Editors ändern

Eclipse arbeitet mit einer Voreingestellten Zeilenlänge von 80 Buchstaben. Das ist für heutige Bildschirmauflösungen wenig. Besonders beim Nachformatieren von Code mit Hilfe von CTRL+SHIFT+F kommt es dabei zu unerwünschten Zeilenumbrüchen. Dies Einstellung kann man folgendermaßen ändern.

Window -> Preferences -> Java -> Code Style -> Formatter -> Edit (Button)

In dem jetzt erscheinenden Dialog aktiviert man das Tab Line Wrapping und trägt die gewünschte Zeilenlänge ein.

eclipse-linelength.jpg


Zugriffsort auf die Java-API ändern

Nächste Seite

Valid XHTML 1.0 Strict top Back Next Up Home