Asteroid-Spieler in Java: Öffnen des Projekts in Eclipse

Da mein Programmcode auch Anfängern gestatten soll, an dem Wettbewerb teilzunehmen und dabei vielleicht nicht unbedingt zu gewinnen, aber zumindest ein wenig Programmieren zu lernen, beschreibt diese Seite, wie man mein Projekt in der IDE Eclipse öffnet. Eclipse ist ein sehr mächtiges Werkzeug, das am Anfang vielleicht etwas übermächtig erscheinen mag, aber es lohnt sich meines Erachtens auf alle Fälle, sich dort einzuarbeiten.

In Punkto Eclipse bin ich aber genauso unbeleckt wie sonstwer, für dieses Projekt benutze ich es zum ersten Mal, ansonsten läuft bei mir IntelliJ IDEA, aber das kostet Geld.

Vorbereitungen

JDK installieren

Falls noch nicht geschehen, so ist zunächst ein aktuelles Java-Developer-Kit (JDK) zu installieren. Es gibt auch Java-Runtime-Environments (JREs), aber die bringen keinen Compiler mit (sind aber im JDK enthalten). Das aktuelle JDK gibt es von Sun Microsystems, aktuell ist zur Zeit JDK 6, und bei Verwendung von Eclipse sind keine Erweiterungen nötig. Als Anmerkung sei hier darauf hingewiesen, dass "JDK 6" Marketing-Sprech ist, auf der technischen Ebene ist die Versionsnummer 1.6.

asteroids.properties anpassen

Es geht bestimmt auch anders, aber für mich war es erheblich leichter, das Projekt mit einem funktionierenden Ant-Makefile einzubinden. Daher ist nach dem Entpacken des von hier stammenden Zip-Archivs asteroid-X.XX.zip die Datei asteroids.properties im nun neu erstandenen asteroid-Verzeichnis zu öffnen und an Dein System anzupassen. Dafür reicht Notepad völlig aus.

Statt des bisherigen Inhalts

jdk.home.1.6=/home/rammi/jdk/jdk1.6.0_02

ist der Teil hinter dem Gleichheitszeichen an Dein System anzupassen. Einzutragen ist das Basisverzeichnis der JDK-Installation, falls Du es nicht kennst, kannst Du im schlimmsten Fall nach javac bzw. (unter Windows) javac.exe (dem Java-Compiler) suchen. Der selbst ist immer in einem Verzeichnis namens bin, und das gesuchte Basisverzeichnis liegt dann noch eines höher. Falls es mehrere Treffer gibt, dann ist dem mit der Nummer 1.6 darin der Vorzug zu geben. Auf deutschen Windows-Rechnern liegt das JDK für gewöhnlich unter C:\Programme\Java.

Neues Projekt einrichten

Dafür muss natürlich Eclipse vorhanden sein, also muss es zunächst installiert werden.

Danach kann es gestartet werden und ein neues Java-Projekt erzeugt werden:

Screenshot: Neues Java-Projekt anlegen

Das geht über den Toolbar oder, wie im Screenshot, übers Menu.

Screenshot: Projekt-Dialog Schritt 1

Im nun erscheinenden Dialog bekommt das Projekt einen Namen (hier "MyAsteroidPlayer") und es werden bereits vorhandene Quellen genutzt, also ist "Create project from existing source" angekreuzt und das Verzeichnis angegeben, in das Du die Quellen entpackt hast. Der Rest kann so bleiben, also kann "Next >" gedrückt werden.

Screenshot: Projekt-Dialog Schritt 2

Im nächsten Schritt entfernen wir noch das mitgelieferte bereits kompilierte Programm aus den Bibliotheken, von denen unser Programm abhängt, weil wir ja unsere eigenen Quellen kompilieren und verwenden wollen. Dazu ist im Tab "Libraries" der Eintrag "asteroid.jar" zu selektieren und "Remove" zu drücken.

Danach sollte das Ganze so aussehen und es kann "Finish" betätigt werden:

Screenshot: Projekt-Dialog Schritt 3

Gratuliere, damit hast Du ein Projekt erzeugt, das bereits alles Wesentliche enthält.

Player laufen lassen und ein klein wenig programmieren

Über den runden grünen Knopf mit weißem Dreieck im Toolbar rechts neben dem Käfer können wir das Programm jetzt laufen lassen. Aus didaktischen Gründen bitte MAME noch nicht starten, sonst passiert jetzt bei Dir nicht dasselbe wie hier im Beispiel.

Zunächst mal möchte Eclipse aber wissen, was wir überhaupt starten wollen:

Screenshot: Dialog Run As

Wir wollen eine Java-Application laufen lassen. Aber Eclipse ist noch nicht zufrieden:

Screenshot: Java-Klasse auswählen

In unserem Projekt gibt es mehrere Klassen, die eine main-Methode enthalten, und jede dieser Klasse kann als Java-Applikation aufgerufen werden.

Nach einem Druck auf "OK" startet der Player, aber bricht sofort wieder mit einer Ausnahme ab:

Screenshot: Ausnahme ICMP Port
                                              Unreachable ist aufgetreten

Da kein MAME lief, ging die Verbindung zum Zielport ins Leere. Eclipse zeigt unten in der Console die Fehlermeldung und die zugehörige Aufrufhierarchie. Uns interessieren natürlich besonders unsere eigenen Klassen, die immer in Packages liegen, die mit de.caff beginnen, daher klicken wir jetzt mal auf das doch stark nach einem Link aussehende blaue Communication.java:109.

Tatsächlich werden wird nach einer kurzen Gedenksekunde die entsprechende Zeile im Editor angezeigt:

Screenshot: Editor an Fehlerzeile

Hilfreich zur Navigation ist die Möglichkeit, mit gedrückter Strg-Taste auf einen Methoden- oder Klassennamen oder ähnlichem klicken zu können und direkt an den Definitionsort zu kommen. Aber wir wollen lieber programmieren und fügen spaßeshalber noch eine Zeile

System.err.println("Hallo Welt!");

vor der Fehlerzeile ein, lassen das Ganze nochmal laufen (was diesmal ohne Abfragen klappen sollte) und voila: wir haben etwas am Programm geändert:

Screenshot: Eine Änderung nebst Ergebnis

Kommandozeilenargumente und weitere Programme

Ein nettes Feature dieses Projekts ist es natürlich, dass man sehen kann, was passiert, was aber nur funktioniert, wenn man einen zusätzlichen Kommandozeilenschalter -d ("d" wie "display") setzt.

Dazu ist wieder der grüne Run-Knopf zu drücken, aber diesmal bitte rechts auf das schwarze Dreieck drücken und im dann erscheinenden Menü "Open Run Dialog" auswählen. Im dann erscheinenden Dialog links unter den Applikationen "AsteroidPlayerRunner" auswählen und dann oben den Tab "Arguments" anklicken,

Screenshot: Programmargumente

Bei den Programmargumenten habe ich neben dem eben erwähnten -d auch noch -s bla.dump eingetragen, was dazu führt, dass bei jedem Lauf eine Datei bla.dump geschrieben wird, die im wesentlichen einen Mitschnitt der UDP-Kommunikation enthält. Jetzt bitte den Knopf "Apply" drücken, damit die Änderungen übernommen werden, ohne den Dialog zu schließen, denn wir werden gleich noch den Analysator als Applikation hinzufügen, damit wir auch ihn von Eclipse aus aufrufen können.

Um eine neue Applikation anzulegen, ist im Dialog der Toolbar-Knopf ganz links (Blatt mit Plus) zu drücken.

Screenshot: Analyzer - Main Einträge

Ganz oben wird dem Kind ein Name gegeben, dann ist noch die "Main class" einzugeben, was am einfachsten durch Verwendung des "Search..."-Buttons geht.

Screenshot: Analyzer - Argumente

Auch der Analyser braucht Argumente, neben der zu analysierenden Datei habe ich hier auch ein Argument für die VM (Virtual Machine) spendiert, das dafür sorgt, dass der Prozess bis zu 1GByte Speicher verwenden darf.

Damit der Analyser jetzt was sinnvolles anzeigen kann, sind natürlich Daten nötig. Hier ist ein gezippter Mitschnitt, den Du in das asteroid-Verzeichnis entpacken muss. Danach darfst Du im Dialog "Run" betätigen und der Analysator sollte mit diesen Daten starten. Wenn Du bis jetzt alles genauso wie das Beispiel gemacht hast, wird diese entpackte Datei übrigens beim nächsten Start des Players überschrieben, da ja auch dieser eine Datei desselben Namens schreibt.

Um das letzte gestartete Programm nochmal zu starten, musst Du nur links auf den grünen Knopf drücken, möchtest Du ein anderes starten, dann geht das durch einen Klick auf das schwarze Dreieck rechts und Auswahl über das dann erscheinende Menü.

Wie erwähnt bin ich keinesfalls ein Eclipse-Experte, daher wende Dich bei Fragen zu Eclipse lieber an die Eclipse-Community.

Zurück zur Hauptseite