Eclipse: Lehrbuch-Programm startet nicht

nbergmann

Aktives Mitglied
Ich habe die Dateien "Anteil.java" und "Anteiltest.java" in den Unterordner de,habelitz.uebung06 kopiert. Wie zu sehen, erscheinen sie aber nicht im Verzeichnisbaum links. Sie lassen sich aber mit File > Open file aus diesem Verzeichnis in den Editor holen. Starte ich "Anteiltest.java" mit Run > Run, erscheint die "Fehlermeldung" "Run as", wie auf dem Screenshot zu sehen.
Beide Dateien sind Orginale des Lehrbuchautors Hans-Peter Habelitz.
Was mache ich falsch?

Screenshot 2022-07-16 09.59.30.png
Java:
package de.habelitz.uebung06;

/*
 * Programm Anteiltest zum Testen der Klasse Anteil
 * @author Hans-Peter Habelitz
 * @date 2019-08-29
 */

public class Anteiltest {
    public static void main(String args[]) {
    int vermoegen = 200000;
    Anteil a1 = new Anteil(1, 4);
    Anteil a2 = new Anteil(1, 2);
    System.out.println("Anteil a1: " + a1.bruchToString());
    System.out.println("Betrag von a1: " + vermoegen * a1.dezimalwert());
    System.out.println("Anteil a2: " + a2.bruchToString());
    System.out.println("Betrag von a2: " + vermoegen * a2.dezimalwert());
    System.out.println("Verteilt: " + Anteil.verteilt.bruchToString());
    System.out.println("Rest: " + a1.getRest().bruchToString());
    System.out.println("Restbetrag: " + vermoegen
        * a1.getRest().dezimalwert());
    }

}


package de.habelitz.uebung06;

/*
 * Klasse Anteil abgeleitet von Bruch
 * @author Hans-Peter Habelitz
 * @date 2019-08-29
 */

public class Anteil extends Bruch {
    static Bruch verteilt = new Bruch(0);

    Anteil() {
    super();
    }

    Anteil(int z, int n) {
    super(z, n);
    verteilt = verteilt.addiere(this);
    if (this.getVerteilt() > 1)
        System.out.println("Fehler!! Es wurde zu viel verteilt!");
    }

    double getVerteilt() {
    return (double) verteilt.getZaehler() / verteilt.getNenner();
    }

    Bruch getRest() {
    Bruch gesamt = new Bruch(1);
    return gesamt.subtrahiere(verteilt);
    }
}
 
ich würde dir dringend raten pro übung ein neues projekt zu machen... übersichtlichkeit verhindert solche probleme
 
Sicher, dass es unter JavaUebung06/src/de/habelitz/uebung06 und nicht unter JavaUebung/src/de/bergmann/uebung06 liegt?
Ja.
ich würde dir dringend raten pro übung ein neues projekt zu machen... übersichtlichkeit verhindert solche probleme
Ich habe im Unterordner de.bergmann.uebung06 alles gelöscht außer "Bruch.java". Dann habe ich "Anteil.java" und "Anteiltest.java" hineinkopiert.
Die oben beschriebenen Probleme treten wieder genau so auf.
 
normalerweise kannst du auf die datei wo die main methode drin ist

1. rechtsklick
2. runs as
3. java application auswählen

dann führt es die main in der datei aus
 
normalerweise kannst du auf die datei wo die main methode drin ist

1. rechtsklick
2. runs as
3. java application auswählen

dann führt es die main in der datei aus
Die Main-Methode "Anteiltest.java" wird im Verzeichnisbaum links ja nicht angezeigt, obwohl sie sich dort befindet. Das sehe ich, wenn ich sie mit File > Open File suche und im richtigen Verzeichnis finde. Dort kann ich sie auch öffnen und sie erscheint im Eclipse-Editor. Starte ich mit "Run", passiert alles wieder so wie oben beschrieben.
 
Also auf dem Bildschirmfoto sieht man ja das Package de.habelitz.uebung06 und da sieht man genau, dass da eben keine Datei mit A drin ist.

Also bitte einem genau prüfen, wo die Datei ist, die Du da öffnest. Das Problem ist also ganz offensichtlich, dass Du mit der Verzeichnisstruktur durcheinander geraten bist.
 
kann es sein dass du die datei excludiert hast? dann findet sie eclipse nicht und tut so als ob sie niemals irgendwo existiert hat
 
Also auf dem Bildschirmfoto sieht man ja das Package de.habelitz.uebung06 und da sieht man genau, dass da eben keine Datei mit A drin ist.

Also bitte einem genau prüfen, wo die Datei ist, die Du da öffnest. Das Problem ist also ganz offensichtlich, dass Du mit der Verzeichnisstruktur durcheinander geraten bist.
Screenshot 2022-07-16 19.38.57.png
Hier mein Beweis mit dem Windows-Explorer: Die beiden Anteil-Dateien befinden sich im richtigen Ordner, werden von Eclipse aber nicht angezeigt.
 
dann hast du die datei "excludiert" von deinem projekt dh eclipse ignoriert diese ODER da du sagtest dass du die original dateien hast... refresh mal das projekt vllt hats eclipse nicht aktualisiert
 
Sorry für meine Skepsis.

Der Link von @mihe7 zeigt einige Möglichkeiten.

Das, was ich probieren würde:
a) Rechtsklick auf das Package und refresh sagen
b) Projekt schließen und neu öffnen
c) Dieses erneute importieren vom Projekt

Generell ist das aber extrem ungewöhnlich - Eclipse sollte doch Veränderungen am Dateisystem auch mitbekommen.

Unabhängig von dem aktuellen, konkreten Problem:
Ich würde wie immer dazu raten, dass man ein Projekt unabhängig von einer IDE hat. Also z.B. Maven. Dann kann man immer auf der Kommandozeile schauen, ob da alles funktioniert. Hintergrund ist, dass Entwicklungsumgebungen hoch komplexe Gebilde sind und da kann immer mal etwas schief gehen. Da ist es dann auch hilfreich, wenn man das komplett "resetten" kann.

Und Eclipse wäre eine IDE, die man ggf. auch nicht nutzen möchte. Ich empfehle immer sehr gerne InteliJ. Damit fahren vor allem Neueinsteiger deutlich besser. So fatales Verhalten wie da jetzt ganz offensichtlich von Eclipse kenne ich da nicht. (Von den schlechten Voreinstellungen in Eclipse will ich gar nicht reden!)
 
Schau mal hier https://stackoverflow.com/questions/9389121/eclipse-wont-show-files-in-package-explorer

EDIT: aber erst, wenn Du wirklich sicher bist, dass die Datei an der richtigen Stelle liegt. Ansonsten verweise ich auf @KonradN bzw. #2.
Auf jeden Fall zeigt mir dein Link, dass nicht nur ich dieses Problem habe.
Um die Tipps dort umzusetzen, brauch ich länger. Der Satz "Create a blank workspace" macht mir aber klar, dass eine Art Reset ansteht.
Aber ohne zu wissen, was da los war, bin ich wahrscheinlich in vier Wochen wieder bei dem gleichen Problem.
 
Ich würde die von @KonradN geschriebene Reihenfolge einhalten: mit den harmloseren Dingen beginnen und wenns nicht klappt die nächste Eskalationsstufe nehmen.

Aber ohne zu wissen, was da los war, bin ich wahrscheinlich in vier Wochen wieder bei dem gleichen Problem.
Ich verwende selbst kein Eclipse, lese aber relativ oft von Problemen mit dem Workspace. Das wird wohl einfach eine Macke von Eclipse sein, die man nicht verstehen muss.

Bei NetBeans ist das ähnlich. Wenn ich ein Projekt aus dem Repository pulle, kommt es schon mal vor, dass NetBeans plötzlich Klassen nicht mehr kennt, die es kennen müsste. Dann weiß ich: NetBeans zumachen, Cache löschen, NetBeans öffnen.

Daher: das muss man nicht verstehen und wahrscheinlich weiß niemand, warum diese Fehler auftreten, sonst hätte man sie wohl irgendwann einmal gefixt.
 
Das Package markieren und F5 drücken hilft meistens.

Eclipse hat wohl ein virtuelles Dateisystem, es zeigt nicht direkt die Daten auf der Platte an, sondern in seinem virtuellen Filesystem. Die sollten synchron sein - sind aber es aber oft nicht, insbesondere wenn man was an den Ordnern ändert, während man Eclipse offen hat. Grandios ist es, wenn man einen Branch wechselt und Eclipse auf einem Stand losläuft der 50% vom alten Branch hat und 50% vom neuen ......
 
Im Reinzustand (Projekt komplett neu anlegen und nur die drei beteiligten Dateien verwenden) scheint es wohl zu funktionieren:

Eclipse_Anteilstest.jpg
 
Sorry für meine Skepsis.

Der Link von @mihe7 zeigt einige Möglichkeiten.

Das, was ich probieren würde:
a) Rechtsklick auf das Package und refresh sagen
b) Projekt schließen und neu öffnen
c) Dieses erneute importieren vom Projekt

Generell ist das aber extrem ungewöhnlich - Eclipse sollte doch Veränderungen am Dateisystem auch mitbekommen.

Unabhängig von dem aktuellen, konkreten Problem:
Ich würde wie immer dazu raten, dass man ein Projekt unabhängig von einer IDE hat. Also z.B. Maven. Dann kann man immer auf der Kommandozeile schauen, ob da alles funktioniert. Hintergrund ist, dass Entwicklungsumgebungen hoch komplexe Gebilde sind und da kann immer mal etwas schief gehen. Da ist es dann auch hilfreich, wenn man das komplett "resetten" kann.

Und Eclipse wäre eine IDE, die man ggf. auch nicht nutzen möchte. Ich empfehle immer sehr gerne InteliJ. Damit fahren vor allem Neueinsteiger deutlich besser. So fatales Verhalten wie da jetzt ganz offensichtlich von Eclipse kenne ich da nicht. (Von den schlechten Voreinstellungen in Eclipse will ich gar nicht reden!)
 
An KonradN
Ich hol mal ein bisschen aus.
Vor 35 Jahren wurde unser Schulzentrum mit einem Computerraum ausgestattet. Wenn man die anmachte, stand dort "C:". Und keiner wusste, wie es weiterging. Als erster Lehrer habe ich damals Übungsprogramme für Schüler mit GWBasic geschrieben und eingesetzt. Später habe ich mit Turbo Pascal ein Lernprogramm geschrieben, in Zusammenarbeit mit einem Schulbuchverlag. Die rasende Entwicklung hat mich dann aber überrollt.
Auf jeden Fall hat mir das großen Spaß gemacht.
Java zu lernen ist für mich viel anstrengender. Das mag auch an meinem Lehrbuch liegen, dass ich nicht für gut halte: Hans-Peter Habelitz: Programmieren lernen mit Java. Hinzu kommen die erheblichen Probleme mit Eclipse, die selbst ihr nicht lösen könnt und die nach einem Reset sicher irgendwann wieder auftauchen.
Daher werde ich deine Anregung annehmen und es mal mit InteliJ versuchen.
Kannst du mir ein geeignetes Einsteigerbuch empfehlen? Wichtig sind natürlich Übungsaufgaben mit Modellösungen, da ich ohne diese mir eine Kompetenz einbilde, die ich gar nicht habe.
 
Turbo Pascal...rasende Entwicklung...IntelliJ
Der Java Compiler achtet -rein numerisch runtergezählt- auf mehr formelle Kriterien bis zum lauffähigen Programm (im Ggs zu z.B. Turbo Pascal oder GwBasic). Der Einsatz der OOP hat sich als als vorteilhafter erwiesen als prozedurale Programmierung (Stichwort z.B.: Wiederverwendung von Quellcode). IntelliJ hat auch Eigenheiten, die beachtet werden wollen (z.B. Anlegen eines Projekts, danach (wohl) eines Moduls): IntelliJ_Anteilstest.jpg
 
Die Bücher, die hier regelmäßig empfohlen werden:
  • Java von Kopf bis Fuss.
  • Schödinger programmiert Java

Diese Bücher sind halt sehr visuell aufgebaut. Ob diese Art und Weise einem liegt muss jeder für sich heraus finden. Aber man kann online sowas wie Probekapitel ansehen um dies heraus zu finden.

Diese Bücher haben aber nicht wirklich Aufgaben zum lösen. Da gibt es aber z.B. das Buch "Captain Ciaociao erobert Java" welches diese Lücke schließen kann.

Was da aber nicht wirklich in Tiefe behandelt wird, sind die Entwicklungsumgebungen. Da kann man aber einfach mal schauen, was man da so findet:

Die Frage ist aber immer: Ist das etwas, das ausreicht? Den es kommen immer wieder Verständnisprobleme oder es hängt einfach irgendwo. Und da ist aus meiner Sicht die Unterstützung durch Dritte wichtig. Das hast Du zum einen hier im Forum hoffentlich gefunden (Auch wenn da ggf. das Verständnis des Problems nicht immer direkt da ist wie hier im Thread bei mir 🙂 ) aber ein Optimum stellt meist eine direkte Unterstützung da. Ein direkter Ansprechpartner, der sich hin und wieder Zeit nimmt, ist einfach unschlagbar.

Was die Situation angeht, die Du beschrieben hast: Die kann ich sehr gut nachvollziehen und die ist mir durchaus bekannt. (So komme ich aus einer "Lehrerfamilie". Mein Vater hat damals auch sehr viel in der Art mitmachen dürfen.)
 
Hinzu kommen die erheblichen Probleme mit Eclipse
In den Schulen wird wohl oft auf BlueJ zurückgegriffen (dazu kann ich aber nichts sagen), als "richtige" IDE würde ich IntelliJ oder NetBeans verwenden. Eclipse ist für meine Begriffe nicht sonderlich intuitiv.

Java zu lernen ist für mich viel anstrengender.
Seinerzeit war alles hinter einer IDE "versteckt" (man hat sich halt keine Gedanken gemacht und sich auch nicht machen müssen). Bei Borland C++ unter DOS hat man auf "Make" gedrückt -> fertig.

Beim JDK wird dagegen weder eine IDE, geschweige denn ein Build-Tool ausgeliefert. Es ist alles sehr viel modularer und die erste Schwierigkeit besteht darin, die Zusammenhänge zu verstehen. Das trifft zwar jetzt nicht ganz den Punkt aber Du kannst Dir ja mal https://www.java-forum.org/thema/classpath-ressourcen-ides-und-build-systeme.194131/ ansehen, da hatte ich mal was dazu geschrieben.

Java zu lernen bedeutet also nicht Java mit IDE xy zu lernen. Ungeachtet dessen ist die IDE ein sehr mächtiges Werkzeug, das sehr viel mehr leistet als die besseren Editoren der 90er. Aufgrund der Komplexität und der damit einhergehenden Fehlerquellen muss man hier einfach ein paar Abstriche machen. So lange die Fehler nicht zu oft auftreten und man weiß, wo man ansetzen muss, ist das zwar nervig aber jetzt auch nicht wirklich dramatisch.
 

Zurück
Oben