Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Nun kann man das Programm wie gewohnt per Rechtsklick → Run AsJava Application starten.

Warum funktioniert mein Test nicht?

Zunächst sollten alle Testdurchläufe bei Bedarf eine Fehlermeldung erzeugen. Diese könnt ihr sehen, wenn ihr auf den entsprechenden Durchlauf klickt. In den meisten Fällen sollte die Fehlermeldung eigentlich schon erklären, was falsch läuft. Ein paar Meldungen können aber trotzdem nochmal erklärt werden.

Expand
titlea) Fehler beim Kompilieren

Falls wir das abgegebene Programm nicht kompilieren konnten, wird diese (oder zumindest eine ähnliche) Fehlermeldung erzeugt:

Image Removed

Für Kompilierfehler gibt es normalerweise zwei Ursachen:

  • Falscher Klassenname: Prüft ob die hochgeladene Klasse genau so heißt wie in der Aufgabe vorgegeben.
  • Falsches Package: Ein Package darf nur verwendet werden, wenn das auch in der Aufgabe erwähnt wird. Besonders am Anfang werden wir noch kein Package verwenden. Die entsprechende Warnung in Eclipse könnt ihr einfach ignorieren. Später muss das Package genau so heißen wie in der Aufgabe angegeben.
Expand
titleb) Keine Programmiersprache ausgewählt

Image Removed

Wir akzeptieren nur Java-Code in den automatischen Tests. Eine Stolperfalle ist, dass auch im iLearn die Programmiersprache auf Java eingestellt werden muss. Hierzu müsst ihr in der kleinen Box oberhalb eurer Abgabe Java auswählen.

Image Removed

Als kleiner Bonus habt ihr dann auch ein schönes Syntax-Highlighting in eurer Abgabe.

Expand
titlec) Der Style-Checker meckert

Manche Fehlermeldungen beginnen mit "The following output was generated checking the style of your code:"

Die meisten Formatierungsprobleme können in Eclipse recht einfach mit Ctrl-Shift-F (Cmd-Shift-F) behoben werden. Es gibt jedoch Ausnahmen, wie die folgenden, wobei wir gerne gerne noch Ergänzungen dieser Liste entgegennehmen:

Name 'Ftemp' must match pattern '^[a-z][a-zA-Z0-9]*$'.

Hier ist das Problem, dass der Variablenname nicht mit einem Kleinbuchstaben beginnt. Zur Erklärung der Fehlermeldung: "^" steht für den Anfang des Namens, dann soll ein Kleinbuchstabe kommen, dann beliebig viele Buchstaben oder Ziffern, dann mit "$" das Ende des Namens.

In line 19: '}' should be on the same line.

Die (in diesem Fall zugegebenermaßen nicht sehr hilfreiche) Fehlermeldung hätte lauten sollen: "'}' should be on the same line as the else keyword". Der Code hier sah folgendermaßen aus:

Code Block
}

else {

Die Fehlermeldung verschwindet bei folgendem Code:

Code Block
} else {

...

titled) Der Test geht gar nicht

Es kann eine andere Fehlermeldung mit einem Fehlercode angezeigt werden. Üblicherweise ist das kein Fehler von euch (zur Ausnahme siehe b), sondern etwas ist an unserer Infrastruktur kaputt. Bitte meldet solche Fehler bei eurem Übungsgruppenleiter und/oder bei cds.

...

Wie man die main-Methode ganz schnell durch Eclipse generieren lassen kann steht übrigens im nächsten Eintrag.

Warum sagt Java mir irgendwas von 32 und 64 Bit?

Beim Starten des Programms kommt eine Fehlermeldung wie diese hier:

Code Block
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\xxxxx\GCMDLN.DLL: Can't load IA 32-bit .dll on a AMD 64-bit platform

Das liegt oft an einem von zwei Dingen:

  1. Es fehlt eine main-Methode (siehe vorige Frage).
  2. Es wurde versucht, das Programm durch Klick auf den Start-Knopf in Eclipse zu starten. Besser funktioniert es, mit der rechten Maustaste in den Code zu klicken und per Run AsJava Application zu starten. Dann weiß Eclipse nämlich exakt, was zu starten ist, während es beim Klick auf den Start-Knopf gegebenenfalls (falsch) rädt.

Wie kann ich in Eclipse schnell die main -Methode generieren?

Man kann Eclipse so konfigurieren, dass man zum Schreiben unserer main-Methode nur acmmain eingeben muss und dann durch Strg+Leertaste Eclipse bitten kann, die komplette Methode zu implementieren.

Expand
titleAnleitung ausklappen
  1. Die Preferences aufrufen. Unter Mac dafür einfach Command+Komma drücken (oder oben links im Eclipse-Menu auf Preferences klicken). Unter Linux und Windows im Window-Menu auf Preferences klicken.
  2. Im Preferences-Dialog links auf JavaEditorTemplates klicken. Folgende Seite sollte sich auftun:
    Image Added
  3. Auf New... klicken und den Dialog folgendermaßen ausfüllen:

    Nameacmmain
    ContextJava type members
    DescriptionEgal
    Pattern
    Code Block
    languagejava
    public static void main(String[] args) {
    	new ${enclosing_type}().start();${cursor}
    }

    Das sollte dann folgendermaßen aussehen:
    Image Added

  4. Den Preferences-Dialog durch Klick auf Apply and Close schließen.
  5. Im Körper einer Klasse kann man nun acmmain eingeben und nach Druck auf Strg+Leertaste das neue Template in vollsten Zügen genießen!

Warum funktioniert mein Test nicht?

Zunächst sollten alle Testdurchläufe bei Bedarf eine Fehlermeldung erzeugen. Diese könnt ihr sehen, wenn ihr auf den entsprechenden Durchlauf klickt. In den meisten Fällen sollte die Fehlermeldung eigentlich schon erklären, was falsch läuft. Ein paar Meldungen können aber trotzdem nochmal erklärt werden.

Expand
titlea) Fehler beim Kompilieren

Falls wir das abgegebene Programm nicht kompilieren konnten, wird diese (oder zumindest eine ähnliche) Fehlermeldung erzeugt:

Image Added

Für Kompilierfehler gibt es normalerweise zwei Ursachen:

  • Falscher Klassenname: Prüft ob die hochgeladene Klasse genau so heißt wie in der Aufgabe vorgegeben.
  • Falsches Package: Ein Package darf nur verwendet werden, wenn das auch in der Aufgabe erwähnt wird. Besonders am Anfang werden wir noch kein Package verwenden. Die entsprechende Warnung in Eclipse könnt ihr einfach ignorieren. Später muss das Package genau so heißen wie in der Aufgabe angegeben.
Expand
titleb) Keine Programmiersprache ausgewählt

Image Added

Wir akzeptieren nur Java-Code in den automatischen Tests. Eine Stolperfalle ist, dass auch im iLearn die Programmiersprache auf Java eingestellt werden muss. Hierzu müsst ihr in der kleinen Box oberhalb eurer Abgabe Java auswählen.

Image Added

Als kleiner Bonus habt ihr dann auch ein schönes Syntax-Highlighting in eurer Abgabe.

Expand
titlec) Der Style-Checker meckert

Manche Fehlermeldungen beginnen mit "The following output was generated checking the style of your code:"

Die meisten Formatierungsprobleme können in Eclipse recht einfach mit Ctrl-Shift-F (Cmd-Shift-F) behoben werden. Es gibt jedoch Ausnahmen, wie die folgenden, wobei wir gerne gerne noch Ergänzungen dieser Liste entgegennehmen:

Name 'Ftemp' must match pattern '^[a-z][a-zA-Z0-9]*$'.

Hier ist das Problem, dass der Variablenname nicht mit einem Kleinbuchstaben beginnt. Zur Erklärung der Fehlermeldung: "^" steht für den Anfang des Namens, dann soll ein Kleinbuchstabe kommen, dann beliebig viele Buchstaben oder Ziffern, dann mit "$" das Ende des Namens.

In line 19: '}' should be on the same line.

Die (in diesem Fall zugegebenermaßen nicht sehr hilfreiche) Fehlermeldung hätte lauten sollen: "'}' should be on the same line as the else keyword". Der Code hier sah folgendermaßen aus:

Code Block
}

else {

Die Fehlermeldung verschwindet bei folgendem Code:

Code Block
} else {
Expand
titled) Der Test geht gar nicht

Es kann eine andere Fehlermeldung mit einem Fehlercode angezeigt werden. Üblicherweise ist das kein Fehler von euch (zur Ausnahme siehe b), sondern etwas ist an unserer Infrastruktur kaputt. Bitte meldet solche Fehler bei eurem Übungsgruppenleiter und/oder bei cds.

Image Added

Warum warnt mich Eclipse davor, dass eine "serialVersionUID" fehlt?

Aus Gründen. Ist egal. Das kann man aber ausschalten. Dafür einfach die Anleitung ausklappen…

Expand
titleKlapp mich aus!
  1. Beweg zunächst deinen Mauscursor über den gelb unterstrichenen Klassennamen. Nach einer kurzen Zeit taucht die Fehlermeldung auf. Klick dort auf Configure problem severity.
    Image Added
  2. Wir wollen die Einstellung nicht nur für's aktuelle Projekt ändern, sondern für alle. Also klick im auftauchenden Dialog auf Configure Workspace.Image Added
  3. In den Optionen runter scrollen bis du die im Bild hervorgehobene Option findest, welche du dann auf Ignore änderst bevor auf auf Apply and Close klickst.
    Image Added
  4. Schlussendlich musst du Eclipse erlauben, deinen Code neu zu kompilieren. Dann sollte die Warnung verschwunden sein.
    Image Added

Ich kann schon Java!

Voll gut! Aber erstens haben wir bislang noch niemanden getroffen, der nichts noch hätte dazulernen können, und zweitens haben wir Dinge vorbereitet, um auch Leute mit Vorerfahrung nicht zu langweilen:

...