TFH Der TextPad als Java-Entwicklungsumgebung SS02 Den Editor

Werbung
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
Den Editor TextPad mit dem JSDK zu einer Java-Entwicklungsumgebung kombinieren
Der Java Software Development Kit (Java SDK, kurz JSDK, frü her hiess er JDK) enthält einen
Java-Compiler (javac), einen Java-Interpreter (java) und weitere nü tzliche Werkzeuge zum Erstellen und Testen von Java-Programmen. Der JSDK wird von der Firma Sun in Versionen fü r
Unix-Betriebssystem (insbesondere fü r Linux) und fü r Windows allen Interessierten kostenlos zur
Verfü gung gestellt (siehe www.sun.com oder http://java.sun.com/j2se/1.4/download.html). Die
Programme des JSDK (javac, java etc.) können aber nur von einer Kommandozeile aus gestartet
werden, unter Windows also von einer Dos-Eingabeaufforderung aus. Das ist relativ unbequem.
Der Editor TextPad ist ein Shareware-Programm der englischen Firma Helios (siehe www.textpad.com). Man kann ihn (in Kombination mit dem JSDK) relativ leicht als Entwicklungsumgebung fü r Java einrichten. Es ist dann möglich, aus dem Editor heraus Java-Dateien zu compilieren
und Java-Programme ausfü hren zu lassen. Und wenn einem beim Compilieren ein Fehler gemeldet
wird, genü gt ein Doppelklick um zu der entsprechenden Zeile der fehlerhaften Quelldatei zu springen. Der TextPad hat fü r seine klare Struktur und gute Bedienbarkeit schon mehrere Auszeichnungen bekommen. Leider läuft er nur unter Windows und es gibt (noch?) keine Linux-Version.
An einigen Stellen ist der TextPad speziell auf den JSDK abgestimmt. Man kann ihn aber auch als
Entwicklungsumgebung fü r andere Sprachen einrichten, z.B. fü r C++ oder fü r Perl etc.. (und fü r
mehrere Sprachen gleichzeitig).
Die Installationsdatei fü r den neusten JSDK fü r Windows-Systeme heisst j2sdk-1_4_0-win.exe und
ist etwa 37 MB gross. Hinzu kommt die umfangreiche Dokumentation in HTML-Form (j2sdk1_4_0-doc.zip, etwa 31 MB, sollte man unbedingt haben) und ein Lernprogramm (auf Englisch,
TUTORIAL.ZIP, etwa 10 MB, sehr empfehlenswert). Die Installationsdatei fü r den TextPad
heisst z.B. txpdeu450.exe (TextPad deutsch Version 4.5) oder so ähnlich und ist etwa 2,5 bis 3 MB
gross. Im SWE-Labor der TFH-Berlin (Raum D016) kann man sich eine CD mit diesen (und weiteren) Installationsdateien ausleihen.
Hier ein paar Tipps dazu, wie man den JSDK und den TextPad unter Windows installieren sollte
und wie man die beiden zu einer Java-Entwicklungsumgebung kombinieren kann.
1. Installieren Sie wenn möglich zuerst den JSDK und dann erst den TextPad. Denn wenn der
TextPad bei seiner Installation einen JSDK entdeckt, "verbindet" er sich mit diesem und baut in
sein Menü Extras automatisch drei Befehle (zum Compilieren einer Java-Datei, zum Ausfü hren
eines Java-Programms und zum Starten eines Java-Applets) ein.
2. Wenn Sie den JSDK z.B. in das Verzeichnis c:\jsdk installiert haben, dann sollten Sie den Pfad
c:\jsdk\bin in Ihre Umgebungsvariable path eintragen. Unter Windows95/98/ME schreiben Sie
dazu den Befehl
1
set path=c:\jsdk\bin;%path%
mit irgendeinem Editor in die Datei c:\autoexec.bat. Diese Datei existiert schon und wird bei jedem
Neustart ausgefü hrt. Ä nderungen an dieser Datei sollte man sehr vorsichtig und gewissenhaft vornehmen, da Windows sonst eventuell nicht mehr starten kann. Befehle in der autoexec.bat werden erst nach einem Neustart Ihres Rechners wirksam (aber warten Sie noch einen Moment, unten
kommt noch so ein Befehl). Unter WindowsNT/2000/XP kann man den Wert von Umgebungsvariablen auch ohne Neustart verändern. Fragen Sie Ihren Nachbarn oder die Windows-Hilfe, wie das
geht.
-1-
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
Im Verzeichnis c:\jsdk\bin stehen die ausfü hrbaren Programme des JSDK (der Compiler
javac.exe, der Interpreter java.exe etc..).
3. Java-Klassen werden in Quelldateien (.java-Dateien) vereinbart und vom Compiler in sogenannte Klassendateien (.class-Dateien) ü bersetzt. Häufig mü ssen die Programme des JSDK (javac,
java, etc.) auf bestimmte Klassen (in Quell- und/oder in Klassendateien) zugreifen. Die Programme
suchen nach solchen Klassen in allen Verzeichnissen, die in der Umgebungsvariablen classpath
eingetragen sind. Es empfiehlt sich, den Compiler (javac) alle Klassen in ein separates Verzichnis
schreiben zu lassen, z.B. in ein Verzeichnis namens c:\Klassen, und insgesamt vier Verzeichnisse
(durch Semikolons getrennt) in die classpath-Variable einzutragen. Unter Window95/98/ME
schreibt man dazu den folgenden Befehl in die Datei c:\autoexec.bat:
2
set classpath=c:\Klassen;.;..;..\..
Auch dieser Befehl wird erst nach einem Neustart wirksam. Unter WindowsNT/2000/XP legt man
den Wert der classpath-Variablen entsprechend fest. Das Verzeichnis c:\Klassen trägt man vor allem deshalb in die classpath-Variable ein, damit der Interpreter die Klassendateien findet, die der
Compiler dorthin geschrieben hat. Die ü brigen drei Verzeichnisse (das aktuelle Arbeitsverzeichnis
mit dem unauffälligen Namen Punkt ".", sein Mutterverzeichnis ".." und sein Grossmutterverzeichnis "..\..") werden eingetragen, damit der Compiler bestimte Quelldateien finden und automatisch
"mitcompilieren" kann, wenn er das fü r angebracht hält. Die letzten drei Einträge in der classpathVariablen werden vor allem dann wichtig, wenn man Klassen entwickelt, die zu einem Paket mit
Namen gehören. Was Pakete mit Namen sind (und wie das Paket ohne Namen heisst) wird in der
Lehrveranstaltung PRG1 behandelt.
4. Wenn man den JSDK installiert und die Umgebungsvariablen path und classpath mit geeigneten Werten versehen hat, sollte man (als Test) ein einfaches Quellprogramm compilieren und ausfü hren lassen, z.B. eines namens Hallo01.java in einem Verzeichnis namens c:\Quellen. Dazu
öffnet man eine Dos-Eingabeaufforderung, macht das Verzeichnis c:\Quellen zum aktuellen Arbeitsverzeichnis (mit dem change-directory-Befehl cd) und gibt nacheinander die folgenden beiden
Befehle ein:
3
4
c:\Quellen> javac -d c:\Klassen Hallo01.java
c:\Quellen> java Hallo01
Der erste Befehl veranlasst den Compiler javac die Quelldatei Hallo01.java in eine Klassendatei
Hallo01.class zu ü bersetzen und diese in das Verzeichnis c:\Klassen zu schreiben. Der zweite Befehl veranlasst den Interpreter java dazu, die Klassendatei Hallo01.class auszufü hren. Der Interpreter findet die Klassendatei, weil das Verzeichnis c:\Klassen in der classpath-Variablen eingetragen
ist (siehe oben). Man beachte, dass man beim Angeben einer Quelldatei die Dateierweiterung .java
angeben muss (z.B. Hallo01.java, nicht nur Hallo01), beim Angeben einer Klassendatei die Dateierweiterung .class dagegen nicht angeben darf (nur Hallo01, nicht Hallo01.class).
5. Nachdem man den JSDK installiert und von der Kommandozeile (Dos-Eingabeaufforderung) aus
getestet hat, kann man den TextPad installieren.
6. Wenn man den TextPad startet, sollten im Menü Extras drei Befehle (zum Compilieren einer
Java-Datei, zum Ausfü hren eines Java-Programms und zum Starten eines Java-Applets) eingetragen sein. Falls das nicht der Fall ist, wählt man im Menü Konfiguration den Punkt Einstellungen..., klickt (ziemlich links unten) auf Extras, dann (ziemlich rechts oben) auf Hinzufü gen und
wählt schliesslich JDK-Befehle. Dadurch werden die drei JSDK-Befehl zum Menü Extras hinzugefü gt.
-2-
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
7. Damit der Compiler javac alle Klassendateien in das Verzeichnis c:\Klassen schreibt, muss man
den Compilations-Befehl (im Extras-Menü des TextPad) wie folgt modifizieren: Im Menü Konfiguration wählt man den Punkt Einstellungen..., klickt diesmal auf das Pluszeichen links neben
Extras und dann auf Java kompilieren. In dem Fenster, welches man dann sieht, muss man (in der
zweiten Zeile von oben) den Eintrag rechts neben Parameter: verändern (siehe unten Abbildung 1)
und dafü r sorgen, dass von den 6 Auswahlkästchen mindestens zwei (Dateien vor dem Start speichern und Ausgabe erfassen) mit einem Häkchen versehen sind. Das Ergebnis sollte etwa so aussehen, wie unten in Abbildung 1 (bitte ignorieren Sie den Befehl Make $BaseName ... im Menü
Extras).
Abbildung 1
Der spezielle Name $File wird vom TextPad (bei jedem Aufruf eines Befehls im Menü Extras)
durch den Namen der aktuellen Datei ersetzt. Falls man im TextPad mehrere Dateien gleichzeitig
geöffnet hat ist jeweils die aktuell, deren Fenster den Fokus hat (d.h. "zuletzt angeklickt wurde").
Wählt man den Befehl Java kompilieren in einem Moment, in dem ein falsches Fenster den Fokus
hat, wird der Compiler dadurch meist so verwirrt, dass er nur verwirrende Fehlermeldungen ausgibt.
Der spezielle Namen $FileDir steht fü r das Verzeichnis der aktuellen Datei und $BaseName fü r
den Namen der aktuellen Datei ohne Dateierweiterung ("nur die Zeichen vor dem letzten Punkt").
8. Als ersten Test sollte man eine einfache Quelldatei (z.B. die Datei Hallo01.java im Verzeichnis
c:\Quellen) mit dem TextPad öffnen, ü bersetzen und ausfü hren lassen (mit den Befehlen Java
kompilieren und Java-Programm starten im Menü Extras). Wenn das nicht klappt, muss man
alle bisher beschriebenen Schritte noch einmal ü berprü fen.
9. Mit einem zweiten Test ü berprü ft man dann die "Sprungfähigkeit" des TextPad. Dazu baut man
absichtlich einen Fehler in die Quelldatei ein (z.B. ersetzt man println durch printlnn) und compiliert erneut. In einem Programmausgabe-Fenster sollte daraufhin etwa folgende Fehlermeldung
des erscheinen:
-3-
TFH
1
2
3
4
5
6
Der TextPad als Java-Entwicklungsumgebung
SS02
C:\Quellen\Hallo1.java:5: cannot resolve symbol
symbol : method printlnn (java.lang.String)
location: class java.io.PrintStream
System.out.printlnn("Hallo1, Version 123!");
^
1 error
Die erste Zeile besagt, dass der Compiler in Zeile 5 der Datei C:\Quellen\Hallo1.java einen Fehler
gefunden hat. Wenn man irgendwo in dieser Fehlermeldungszeile doppelklickt, mü sste der TextPad automatisch zu der betreffenden Zeile in der Quelldatei springen. Ein Doppelklick auf eine
andere als die erste Zeile der Fehlermeldung bewirkt keinen Sprung, weil in diesen Zeilen kein
Dateiname und keine Zeilen-Nummer steht.
Sollte das Springen nicht funktionieren, muss man den Regulären Ausdruck fü r Sprungziele
(siehe Abbildung 1) ü berprü fen. Weitere Informationen dazu findet man in der TextPad-Hilfe unter
dem Stichpunkt Reguläre Ausdrü cke zum Interpretieren von Compiler-Fehlermeldungen.
Allgemeine Tipps zum TextPad als Entwicklungsumgebung
Die folgenden Tipps sind weitgehend unabhängig davon, ob man den TextPad als Entwicklungsumgebung fü r Java-, C++, Perl oder irgendeine andere Programmiersprache verwendet.
1. Zeilen-Nummern auf dem Bildschirm anzeigen lassen (sollte man immer machen): Menü
Ansicht, darin Zeilennummern wählen. Achtung: Wenn man die Datei ausdruckt, weden diese
Nummern nicht mitgedruckt (siehe unten).
2. Mit dem TextPad kann man nicht nur mehrere ganze Zeilen kopieren, löschen etc., sondern auch
beliebige rechteckige Textausschnitte (sogenannte Blöcke) bearbeiten, etwa so:
Um einen Block auszuwählen, positioniert man den Cursor vor dem ersten Zeichen (in der linken
oberen Ecke des Blocks), drü ckt dann auf die Alt-Taste (und hält sie gedrü ckt) während man die
Maus nach unten und rechts bewegt. Einen ausgewählten Block kann man dann z.B. löschen oder
kopieren und an anderen Stellen wieder einfü gen. Wie das Einfü gen eines Blocks genau funktioniert lernt man am besten durch Ausprobieren. Lassen Sie sich nicht entmutigen, wenn das Ergebnis
des ersten Versuchs unsinnig oder schwer verständlich zu sein scheint. Nach ein paar Versuchen
werden Sie das System durchschauen und die Block-Funktion nicht mehr missen wollen.
3. Einige Einstellungen des TextPad beziehen sich auf alle Dokumente einer bestimmten Dokumentenklasse (siehe Menü Konfiguration, Einstellungen, Dokumentenklasse). Zu einer Dokumentenklasse gehören alle Dateien ("Dokumente"), deren Namen bestimmte Erweiterungen (Zeichen nach dem letzten Punkt im Dateinamen) haben. Z.B. gehören zur Dokumentenklasse Java alle
Dateien *.jav und *.java, zur Dokumentenklasse C/C++ gehören unter anderem alle *.c, *.cpp, *.h
Dateien etc.. Folgende Einstellungen können (und mü ssen) fü r jede Dokumentenklasse separat
festgelegt werden: die Schriftart fü r die Darstellung auf dem Bildschirm, die Schriftart fü r das
Drucken, alle Einstellungen, die mit Tabulatorzeichen zu tun haben, ob Zeilen-Nummern mit
-4-
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
ausgedruckt werden sollen oder nicht und ob der Inhalt von Programmdateien bunt angezeigt
werden soll (syntax highlighting, entsprechend einer Syntax-Datei wie z.B. java.syn fü r JavaDateien, cpp.syn fü r C++-Dateien etc.).
4. Zeilen-Nummern ausdrucken (sollte man immer machen): Menü Konfiguration, Einstellungen, auf das +-Zeichen vor Dokumentenklasse klicken, eine Dokumentenklasse auswählen (z.B.
auf das +-Zeichen vor C/C++ klicken), Drucken:
Bei Zeilennummern ein Häkchen setzen.
5. In Quelldateien Tabulatorzeichen durch Leerzeichen ersetzen lassen. Sollte man unbedingt
machen, damit beim Ausdrucken (oder beim Bearbeiten der Dateien mit einem anderen Editor)
das Layout nicht plötzlich "ganz anders" ist. Wie bei 2., aber statt Drucken diesmal Tabulator
wählen und zwei Häkchen setzen.
6. Schriftarten wählen: Sie können unabhängig voneinander 2 Schriftarten wählen: Eine fü r den
Bildschirm und eine zum Ausdrucken. Wie bei 2., aber statt Drucken diesmal Schriftart wählen.
7. Wenn Sie zum Ausdrucken die Schriftart Courier 10 Punkte benutzen (empfehlenswert), sollten
Ihre Zeilen nicht länger als etwa 76 Zeichen sein, sonst macht der Drucker einen "gewaltsamen
Zeilenumbruch". Da der Drucker keine Ahnung von Programmierung hat, bricht er Zeilen häufig an
einer ungü nstigen oder falschen Stelle um. Lassen Sie das nicht zu! Prü fen Sie Ihr Dokument vor
dem Ausdrucken immer mit der Druckvorschau (oder Seitenansicht, klicken Sie auf den Knopf
mit der Lupe, in der oberen Knopfleiste). Wenn nicht jede Zeile eine eigene Nummer hat, dann
war eine Zeile zu lang (und sollte von Ihnen an einer richtigen und gü nstigen Stelle umgebrochen
werden).
8. Machen Sie sich möglichst bald mit dem sehr nü tzlichen Befehl In Dateien suchen ... im Menü
Suchen vertraut. Hier ein Anwendungsbeispiel: Sie suchen Quelldateien, in denen ein bestimmter
C++-Befehl angewendet wird, z.B. der Befehl typedef. Angenommen, im Verzeichnis G:\dozenten\mueller\tolleBeispiele (und in seinen Unterverzeichnissen) stehen interessante C++-Beispielprogramme. Dann rufen Sie im Menü Suchen den Befehl In Dateien suchen ... auf (oder drü cken
-5-
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
<Strg>+F5). Dadurch wird ein kleines Fenster geöffnet, in das Sie etwa folgende Daten eintragen:
Besonders wichtig ist das Häkchen bei Untergeordnete Ordner einbeziehen. Wenn Sie jetzt auf
Suchen klicken, wird ein Suchergebnis-Fenster geöffnet (das sieht so ähnlich aus wie ein Dateifenster, in dem man sich eine Datei ansieht und editiert) und darin erscheinen alle Zeilen (aus allen
Dateien in den angegebenen Verzeichnissen) in denen das Wort typedef vorkommt. Am Anfang
jeder Zeile steht der vollständige Pfadname der betreffenden Datei (z.B. G:\dozenten\mueller\tolleBeispiele\gruppe3\Beispiel17.cpp) und wenn Sie auf die Zeile doppelklicken, wird die
Datei (in einem neuen, normalen Dateifenster) geöffnet (und der Cursor steht gleich "an der
richtigen Stelle" in der Datei).
9. Befehle zum Compilieren, Binden und Ausfü hren von Java- und von C++-Programmen finden
sie im Menü Extras. In diesem Menü werden fü r die meisten Befehle auch Tasten-Kü rzel angezeigt (z.B. Strg-1, Strg-2 etc). Hier ein weitere Möglichkeit, wie man die Extras-Befehle besonders
bequem aufrufen kann: Wählen Sie im Menü Ansicht, Symbolleiste den Punkt Extras. Es erscheint eine weitere Befehlsleiste mit vielen Hämmern darin. Jeder Hammer steht fü r einen Befehl
im Menü Extras. Wenn Sie den Mauszeiger einen Moment ü ber einen Hammer halten (ohne zu
klicken) erscheint der Name des betreffenden Befehls als kleiner Hilfe-Ballon.
10. Wenn Sie einen bestimmten TextPad-Befehl besonders häufig brauchen, sollten Sie sein Tastaturkü rzel lernen (es wird im entsprechenden Menü mit angezeigt), und wenn der Befehl noch kein
Tastaturkü rzel hat, dann sollten Sie eines definieren.
Um z.B. die aktuelle Zeile (ohne Griff zur Maus) mit der Tastenkombination Alt-c in die Ablage
kopieren zu können, geht man so vor: Im Menü Konfiguration, Einstellungen wählt man
Tastatur. Unter Kategorien wählt man Bearbeiten und unter Befehl wählt man EditCopyLine.
Dann gibt man in das Eingabefeld Neue Tastenkombination die Kombination Alt-c ein und klickt
schlieslich auf Zuweisen. und Ü bernehmen.
Ganz entsprechend sollte man fü r den Befehl EditDeleteLine (löscht die aktuelle Zeile) das Tastaturkü rzel Alt-y festegen.
11. Links neben dem Hauptfenster werden normalerweise zwei schmale Fenster ü bereinander
angezeigt, oben das Dateilisten-Fenster (in dem alle offenen Dateien angezeigt werden) und
darunter das Textbausteine-Fenster. Wenn man sich alle offenen Dateien als Kartei mit Reitern
anzeigen lässt (Menü Ansicht, Dokumentenkartei) braucht man das Dateilisten-Fenster
eigentlich nicht mehr und kann es schließ en (Menü Ansicht, Dateiliste, oder F11 drü cken). Wo und
wie die Reiter genau angezeigt werden sollen, können Sie einstellen (Menü Konfiguration,
Ansicht, Karteiförmige Dateiliste). Im Textbausteine-Fenster kann man sich eine von verschie-6-
TFH
Der TextPad als Java-Entwicklungsumgebung
SS02
denen Sammlungen von Textbausteinen (clips) anzeigen lassen (indem man mit der linken
Maustaste in die obere Zeile des Fensterchens klickt und dann wählt). Im folgenden Beispiel wurde
die Textbausteine-Sammlung (clips library) namens C++ gewählt:
Wenn Sie auf einen der Textbausteine im Textbausteine-Fenster doppelklicken (z.B. auf Minuszeile oder auf main (mit Meldung)) wird ein entsprechender Text im aktuellen Dateifenster eingefü gt. Sie können auch selbst solche Sammlungen von Textbausteinen anlegen. Klicken Sie mit der
rechten Maustaste auf den Namen der Sammlung (im Beispiel oben: auf C++) um ein Kontextmenü
zu öffnen und wählen Sie darin Sammlung bearbeiten oder Neue Sammlung.
Textbausteine-Sammlungen stehen in Dateien, die z.B. java.tcl, cpp.tcl, htmltags.tcl etc. heissen
(dabei steht tcl fü r TextPad clip library).
12. Fortgeschrittene sollten sich mit regulären Ausdrü cken vertraut machen. Im TextPad kann
man sie unter anderem bei den Befehlen Suche nach ... (in einer Datei) und In Dateien suchen ...
(in mehreren Dateien suchen, siehe oben Punkt 7) gut gebrauchen. Hier ganz knapp die Bedeutung
einiger wichtiger Zeichen in einem regulären Ausdruck:
.
.?
.+
.*
^
$
[abc]
[abc]?
[abc]+
(ein Punkt) Ein beliebiges Zeichen
Null oder ein beliebiges Zeichen
Ein oder mehrere beliebige Zeichen
Null oder mehrere beliebige Zeichen
Zeilenanfang
Zeilenende
Eins der Zeichen a, b, c
Null oder eines der Zeichen a, b, c
Ein oder mehr Vorkommen der Zeichen a, b, c (z.B. abbbac)
-7-
TFH
[abc]*
[^abc]
[^abc]?
[^abc]+
[^abc]*
Der TextPad als Java-Entwicklungsumgebung
SS02
Null oder mehr Vorkommen der Zeichen a, b, c
Ein Zeichen, aber nicht a, b oder c.
Null oder ein Zeichen, aber nicht a, b oder c.
Ein oder mehr Zeichen, aber nicht a, b oder c.
Null oder mehr Zeichen, aber nicht a, b oder c.
Genauere Einzelheiten findet man in der TextPad-Hilfe (jetzt auch auf Deutsch) unter dem Stichwort reguläre Ausdrü cke.
13. Wenn Sie ein Programm starten und ihm dabei bestimmte (Kommandozeilen-) Parameter
ü bergeben wollen, können Sie im Menü Extras den Befehl Ausfü hren wählen. Dadurch geht ein
kleines Fenster auf, in das Sie z.B. folgendes eintragen können:
In diesem Beispiel wird dem Gnu-Cygnus-C++-Ausfü hrer g++ befohlen, aus den drei Quelldateien
dat1.cpp, dat2.cpp und dat3.cpp eine ausfü hrbare Datei namens prog07.exe zu erzeugen. Solche
Compilations- und Bindebefehle, die sich auf mehrere Dateien beziehen, können Sie nicht mit den
anderen ("einfachen") Befehlen im Menü Extras geben (höchstens mit dem make-Befehl).
Last but not least: Stöbern Sie ab und zu in der Hilfe des Textpads. Es gibt noch viele interessante
und nü tzliche Befehle zu entdecken.
-8-
Herunterladen