Das Start Explorer Plugin 1.7.0 läuft auch unter Eclipse Oxygen 4.7.
Das darf in keiner Installation fehlen:
Hier das Kontextmenü: „Start Explorer 1.7.0 läuft auch unter Eclipse Oxygen 4.7 Mac Os X“ weiterlesen

Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Das Start Explorer Plugin 1.7.0 läuft auch unter Eclipse Oxygen 4.7.
Das darf in keiner Installation fehlen:
Hier das Kontextmenü: „Start Explorer 1.7.0 läuft auch unter Eclipse Oxygen 4.7 Mac Os X“ weiterlesen
Wer FreeMarker Templates bearbeiten will, kann dafür den ftlh Editor der JBoss Tools 4.5.0.AM 1 verwenden. Der läuft auch in Eclipse Oxygen 4.7.0!
Installieren über den Marketplace:
Eine ftlh Datei im Editor mit Syntax highlight, syntax error marker, code completion for macro names and bean property names ua.: „FreeMarker Templates: ftlh Editor der JBoss Tools 4.5.0.AM 1 läuft auch in Eclipse Oxygen 4.7.0!“ weiterlesen
Eclipse Oxygen veröffentlicht. Dann mal hier den Download starten …
Mit dem Installer geht die Installation einfach: „Eclipse Oxygen veröffentlicht mit Java 9 previews“ weiterlesen
Vor ein paar Tagen hatte ich hier beschrieben, wie ein Arduino mit der Arduino IDE geflasht wird. Als Java-Entwickler will man am Besten alles in Eclipse machen. Also auch die Arduino-Programmierung. Das geht auch mit dem Eclipse C++ IDE for Arduino 2.0. Für den Anfang ist wohl die Arduino IDE etwas einfacher zu bedienen. Aber mit dieser Anleitung geht es auch in ca. 1 Stunden. Also los …
Über den Eclipse Marketplace installieren:
Das dauert etwas …
Dann ein Arduino Projekt anlegen: „Eclipse IDE für die Arduino C++ Entwicklung“ weiterlesen
Mit Cucumber können Testfälle schön in Worte beschrieben werden. Hier mal ein schneller quick Einstieg.
Eine Testfall Beschreibung kann in Worten mit der Gherkin Syntax geschehen, z.B diese kalender.feature:
|
1 2 3 4 5 6 7 8 9 |
Feature: Lebenskalender überprüfen Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Frauen Given eine Frau im Alter von 52 Jahren und 10 Monaten Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Männer Given eine Mann im Alter von 52 Jahren und 10 Monaten |
In Eclipse sind die JUnit-Test auch schön lesbar, z.B.:
Für Eclipse gibt es ein Natural 0.7.6 Plug-In für die *.feature Dateien. Das kann leicht über den Eclipse Marketplace installiert werden:
Einfach alles installieren:
Die Testfall implementierung kann z.B. so aussehen. Dieser Testfall gibt nur einen Kalender auf der Konsole aus, deshalb gibt es nur das Generieren:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package de.wenzlaff.lebenskalender; import cucumber.api.java.en.Given; /** * Testklasse für den Lebenskalender. * * @author Thomas Wenzlaff * */ public class LebenskalenderCucumber { @Given("^eine Mann im Alter von (\\d+) Jahren und (\\d+) Monaten$") public void generateMann(int jahre, int monate) throws Throwable { Lebenskalender.generate(jahre, monate, false); } @Given("^eine Frau im Alter von (\\d+) Jahren und (\\d+) Monaten$") public void generateFrau(int jahre, int monate) throws Throwable { Lebenskalender.generate(jahre, monate, true); } } |
Eine Testklasse zum starten des Testfalls:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package de.wenzlaff.lebenskalender; import org.junit.runner.RunWith; import cucumber.api.junit.Cucumber; /** * Testsuite für den Lebenskalender. * * @author Thomas Wenzlaff * */ @RunWith(Cucumber.class) public class StartCucumberTest { } |
Folgende Abhängigkeiten werden in der pom.xml benötigt:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- Cucumber Test --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-junit</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>1.2.5</version> <scope>test</scope> </dependency> |
Das ganze Testprojekt kann auf Github geladen werden.
Eine weitergehende Anleitung auf deutsch gibt es hier.
In älteren OSGI Versionen konnte die Konsole einfach über einen Aufruf:
|
1 |
java -jar org.eclipse.osgi_VERSION.jar -console |
gestartet werden. In neueren Versionen läuft es nicht mehr. D.h. es gibt noch nicht einmal eine Fehlermeldung.
Die neue Konsole ist nun Teil von der Apache Felix Gogo shell. Ab dem Eclipse Release 4.4 (Luna) ist die Built-in OSGi-Konsole komplett von dem Equinox Framework entfernt worden. „Warum läuft die OSGI-Konsole in neueren Versionen nicht mehr so wie früher?“ weiterlesen
Eclipse Neon hat nun einen eingebauten Json Editor, es braucht nun kein anderes Json Plugin installiert werden.
In Java 1.8 gibt es das neue Schlüsselwort default. In Eclipse Neon wird dies auch unterstüzt.
So kann eine default Methode in einen interface erstellt werden:
Sie kann dann so verwendet werden:
In Eclipse ist sie an dem kleinen D erkennbar. Die default implementierung kann auch vererbt werden.
Hier eine schöne Aufzählung der Neuerungen der neuen Eclipse Neon Version.
Cool:
Content Assist now supports substring patterns. Enter any part of the desired proposal’s text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.
The Refactor > Rename popup now shows an Options… link which opens the full Rename dialog that provides more options like renaming a field’s getter and setter methods.
You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):
Der gute BPMN 2.0 Modeler von Camunda:
Bricht leider bei der Installation ab mit diesem Fehler: „Camunda BPMN 2.0 Modeler 2.7.1 läuft leider noch nicht mit Eclipse Neon 4.6.0“ weiterlesen
Um JSON Files zu bearbeiten, gibt es das JSON-PlugIn. Damit können JSON-Dateien bearbeitet werden und auch die Syntaxhervorhebung ist schön.
„JSON Editor Plugin für Eclipse (Mars.2 Release (4.5.2))“ weiterlesen
Update von Version Mars 1 über den Menüpunkt: Help-Check for Updates und restart oder neu Installation über Download von eclipse.org.
„Neue Eclipse Version Mars.2 Release 4.5.2 veröffentlicht!“ weiterlesen
Die UML 2.5 Umgebung Papyrus läuft auch unter Eclipse Mars.1 und bietet u.a. folgende Diagramme:
Die Installation läuft „Papyrus 1.1.3 UML 2.0 Designer läuft auch unter Eclipse Mars.1“ weiterlesen
Für die aktuelle Eclipse Mars.1 Version
gibt es einen kostenlosen UML 2.5 Designer. Mit ihm können ua. folgende Diagramme modelliert werden, wie auf der Homepage zu sehen:
„UML Designer 5.0 für Eclipse Mars.1 installieren“ weiterlesen
Sortierung von Text ist doch hin und wieder mal nötig. Das Eclipse Plugin SortIt ist zwar schon älter, läuft aber immer noch mit der aktuellen Eclipse Mars 4.5.0 Version. Es kann wie alle anderen Plugins installiert werden.

Die Updateseite die unter dem Menü: Help->Install new Software eingetragen werden muss lautet:
|
1 |
http://www.stateofflow.com/UpdateSite/ |
Dann durch den Installationsvorgang gehen:
„Eclipse PlugIn SortIt zum schnellen sortieren nach Länge, Buchstaben oder Nummern“ weiterlesen
Hier am Beispiel von einem Arzt und einer Adresse. Wenn nun von der Adresse auf den Arzt und umgekehrt navigiert werden soll, kann die bidirektionale Verbindung im Feld EOpposite wie folgt eingetragen werden (rechts auf den Pfeil der Combobox klicken):

„Ecore & EMF: Wie kann eine bidirektional Verbindung in Eclipse zwischen zwei Klassen im ecore-Model modelliert werden?“ weiterlesen
Wie kann in einer Java Klasse ein Attribut für die Hibernate-Suche wie folgt annotiert werden?
|
1 2 |
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO) private String klinik_name = null; |
Dazu folgende EAnnotation als Value mit den voll qualifizierter Namen einfügen, damit auch die imports aufgelöst werden können
|
1 |
@org.hibernate.search.annotations.Field(index=org.hibernate.search.annotations.Index.YES, analyze=org.hibernate.search.annotations.Analyze.YES, store=org.hibernate.search.annotations.Store.NO) |
Und für die Maven pom.xml, den folgenden Eintrag, damit die Hibernate Klassen auch gefunden werden können:
|
1 2 3 4 5 6 |
<!-- Für die Hibernate Volltext-Suche --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-search-orm</artifactId> <version>5.3.0.Final</version> </dependency> |
Heute ist die Mars 4.5 Version von Eclipse veröffentlich worden. Was gibt es neues?
Ok, dann mal auf die Mars Download Seite und das Programm laden. Ich war übrigens der 6,666 Download!
Für den Mac geht es jetzt super einfach.
Installation
Download des
eclipse-jee-mars-R-macosx-cocoa-x86_64.tar.gz oder andere gewünschte Version.
Dann einen doppelklick auf die Datei zum entpacken. Nun noch die Eclipse.app in das Programme Verzeichnis verschieben. Dann das Programm starten durch einen doppelklick auf Eclipse.app. Das geht gefühlt schneller als vorher!
Mehr ist für die installation auf einem Mac nun nicht mehr nötig. Hier die IDE, mit den Versions Dialog:

Mars, das war’s. That’s it. Happy coding!
Auf zum Mars RC1, das
ist bald Vergangenheit 😉
Für die meisten Java Projekte braucht man ein BE-Model, das am besten automatisch generiert wird. Wie kann das innerhalb von Eclipse Luna mit dem EMF durchgeführt werden?
Wir wollen diese Modell Stuktur erzeugen. Eine Mindmap hat 0-* Zweige:
Zuerst Texo und EMF installieren.
Dann ein neues EMF Projekt anlegen über das Menü: File - New - Other:

Nun erstellen wir ein ecore Model über das Menü: File - New - Other - Eclipse Modeling Framework-Ecore Model:
So sieht das Projekt nun aus, mit der mindmap.ecore Model Datei:

Nun erzeugen wir zwei Klassen mit ein paar Attribute über New Child - New EClass über das Kontextmenü des Models (2.Zeile): „Wie kann ein BE-Model (ecore) mit Eclipse Modeling Framework (EMF) unter Eclipse Luna 4.4.2 und Texo generiert werden?“ weiterlesen
Wer eine MySQL Datenbank auf seinen Rechner installieren will, muss sich die Packages die zu installieren sind, auf der MySQL Homepage zusammen suchen.
Folgende drei Komponenten müssen für Mac OS X geladen und installiert werden (für Windows analog):
1. MySQL Community Server 5.6.24 von https://dev.mysql.com/downloads/mysql/
Für den Mac OS X 10.9 (x86, 64-bit), DMG Archive 5.6.24 167.6M mysql-5.6.24-osx10.9-x86_64.dmg. Installation.
2. MySQL Workbench 6.3.3 von http://dev.mysql.com/downloads/workbench/
mysql-workbench-community-6.3.3-osx-x86_64.dmg. Installation.
Die Workbench kann dann aus dem Programm Verzeichnis über das folgende Programm-Icon gestartet werden:

3. Connector/J 5.0.8 für Java für alle Betriebsysteme von https://dev.mysql.com/downloads/connector/j/5.0.html
Download mysql-connector-java-5.0.8.zip und z.B. in das Verzeichnis
/usr/local/mysql-5.6.24-osx10.8-x86_64/mysql-connector-java-5.0.8.jar kopieren.
Wenn alles installiert wurde, kann der DB Server über die Systemsteuerung mit dem MySQL Icon unten rechts gestartet werden:
„Wie kann eine MySQL Datenbank auf einem Mac OS X 10.10.3 (Yosemite) (Windows …) installiert werden, um mit Java von Eclipse (Java EE Luna 4.4.2) aus darauf zuzugreifen?“ weiterlesen
Manchmal möchte man die Resourcen wie Bilder oder Dateien aus einem anderen Eclipse Plug-in lesen. Also wie können Resourcen von einem Plug-in, in einem anderen Plug-in gelesen werden?
|
1 2 |
URL url = new URL("platform:/plugin/de.wenzlaff.plugin.twusb/gif/beispiel.gif"); ... |
Siehe auch hier.
Wenn man in Eclipse sehen will, welche UI Komponenten gerade selektiert bzw. aktiv sind, kann der Plug-in Spy verwendet werden. Mit dem kann auch mit nur einen klick auf den Quellcode des jeweiligen aktiven Plug-ins zugegriffen werden. Wie kann der aber auf einem Mac aufgerufen werden (Vier Tasten gleichzeitig): fn+shift+alt+F1 (auf Windows Alt+Shift+F1)
Es erscheint dann solch ein PopUp-Dialog:

und noch ein Beispiel:

Analog dazu gibt es auch einen Spy für die Menüs, der wird mit fn+shift+alt+F2 (auf Windows Alt+Shift+F2) aufgerufen und dann ein Menüpunkt auswählen, es kommt dann z.B. dieser Dialog:

Manchmal möchte man einfach nur Text in der Konsole ausgeben. Früher, d.h. vor Eclipse 3.0 musste man dazu eine eigene View erzeugen. Das braucht man nun nicht mehr, man kann die vorhandenen generic Log Konsole verwenden.
Aufrufen geht dann einfach so:
|
1 2 3 4 5 6 |
MessageConsole konsole = getKonsole("Konsole"); MessageConsoleStream out = konsole.newMessageStream(); out.println("Hallo sagt Thomas von der Konsole."); out.println("Wir schreiben einfach in die Konsole oder?"); out.println(); out.println("Ist das Cool?"); |
Hier die Methode, die die Konsole liefert bzw. erzeugt:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * Liefert die Log Konsole. Wenn keine Konsole vorhanden ist, wird eine neu erzeugt. * * @param konsolenName * der Name der Konsole * @return MessageConsole */ private MessageConsole getKonsole(String konsolenName) { ConsolePlugin plugin = ConsolePlugin.getDefault(); IConsoleManager konsolenManager = plugin.getConsoleManager(); IConsole[] konsolen = konsolenManager.getConsoles(); for (int i = 0; i < konsolen.length; i++) { if (konsolenName.equals(konsolen[i].getName())) { return (MessageConsole) konsolen[i]; } } // keine Konsole gefunden, dann erzeugen wir eine MessageConsole konsole = new MessageConsole(konsolenName, null); konsolenManager.addConsoles(new IConsole[] { konsole }); return konsole; } |
Wir erhalten dann folgenden Ausgabe:

Um das zu erreichen, muss noch eine neue Abhängigkeit ( org.eclipse.ui.console) (Dependencies) ergänzt werden:
Bei der PlugIn Programmierung unter Eclipse Luna kann leicht auf die Log-View zugegriffen werden. Hier mal ein kleines Beispiel mit den verschiedenen Loglevel:
|
1 2 3 4 5 6 7 8 9 10 11 |
IStatus status = new Status(IStatus.INFO, "TWPlugin", "Testeintrag im Log im Status Info"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.ERROR, "TWPlugin", "Testeintrag im Log im Status Error"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.WARNING, "TWPlugin", "Testeintrag im Log im Status Warning"); StatusManager.getManager().handle(status, StatusManager.LOG); status = new Status(IStatus.OK, "TWPlugin", "Testeintrag im Log im Status OK"); StatusManager.getManager().handle(status, StatusManager.LOG); |
Wie kann in Eclipse Luna 4.4.1 aus einem Plugin der absolute Dateipfad einer selektierten Datei aus dem Package oder Project Exporer ermittelt werden?
Das Selection Service wird ja schön hier beschrieben.
Befindet man sich nicht in einer View, sondern in einer Action, kann folgende Methode verwendet werden:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/** * Liefert den selektierten absoluten Dateipfad aus der Package oder Project * Explorer View. * * @param explorer * Klassennamen des Package oder Projekt Exporers * @return der absolute Dateipfad oder null wenn nichts gewählt oder wenn * ein Projekt gewählt wird. */ private String getAbsolutenDateiPfad(final String explorer) { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); IStructuredSelection structured = (IStructuredSelection) window.getSelectionService().getSelection(explorer); if (structured == null) { return null; } Object erstesElement = structured.getFirstElement(); if (erstesElement instanceof IFile) { IFile file = (IFile) structured.getFirstElement(); IPath path = file.getLocation(); return path.toPortableString(); } else { // Keine Projekte: org.eclipse.core.internal.resources.Project return null; } } |
Der Test liefert jeweils den Pfad inkl. Dateiname:
|
1 2 3 |
System.out.println("Im Package Explorer selektierte Datei: " + getAbsolutenDateiPfad("org.eclipse.jdt.ui.PackageExplorer")); System.out.println("Im Project Explorer selektierte Datei: " + getAbsolutenDateiPfad("org.eclipse.ui.navigator.ProjectExplorer")); |
Braucht man das Plattform Arbeisverzeichnis kann man dies über die folgende static Methode erhalten:
|
1 |
System.out.println("Plattform Arbeitsverzeichnis: " + Platform.getLocation()); |
Das Java Rätsel läuft noch ein paar Tage!
Eclipse kann auch in 45 Sprachen und auch auf deutsch umgestellt werden. Es gibt da ein Projekt Babel Language Packs. Habe es mal testweise auf deutsch umgestellt.
Ist in deutsch zu 89 % übersetzt.
Nach restart einmal schauen, und dann gleich wieder zurück auf englisch 😉