Eclipse: Lehrbuch-Programm startet nicht

nbergmann

Aktives Mitglied
Mein Lehrbuch: Hans-Peter Habelitz - Programmieren lernen mit Java
Ich habe das Programm "Bruchmultiplikation" mit der Klasse "Bruch" erfolgreich unter den Namen "BruchmultiplikationN" und "BruchN" geschrieben. Es funktiniert tadellos.. Nun will ich es mit der downgeloadeteten Lösung des Autors vergleichen. Diese aber liefert die Fehlermeldung "Error: Could not find or load main class de.habelitz.uebung06.Bruchmultiplikation".

Java:
Code:
Java:
package de.habelitz.uebung06;
/*
 * Programm Bruchmultiplikation
 * @author Hans-Peter Habelitz
 * @date 2019-08-29
 */

import javax.swing.JOptionPane;

public class Bruchmultiplikation {
    public static void main(String args[]) {
        var eingabe = JOptionPane.showInputDialog(
                      "Geben Sie den Zähler von Bruch a ein: ");
        var z = Integer.parseInt(eingabe);
        eingabe = JOptionPane.showInputDialog(
                      "Geben Sie den Nenner von Bruch a ein: ");
        var n = Integer.parseInt(eingabe);
        var a = new Bruch(z, n);
        eingabe = JOptionPane.showInputDialog(
                      "Geben Sie den Zähler von Bruch b ein: ");
        z = Integer.parseInt(eingabe);
        eingabe = JOptionPane.showInputDialog(
                      "Geben Sie den Nenner von Bruch b ein: ");
        n = Integer.parseInt(eingabe);
        var b = new Bruch(z, n);
        var c = a.multipliziere(b);
        System.out.println("Bruch a: " + a.bruchToString());
        System.out.println("Bruch b: " + b.bruchToString());
        System.out.println("Bruch c: " + c.bruchToString());
    }
}
 
Vermutlich hast Du die Java-Datei nicht im zum Paket passenden Ordner liegen. Die müsste in Deinem Source-Verzeichnis, dort unter de/habelitz/uebung06 liegen.
 
Wo liegt denn denn die Datei und wie heisst diese?

Wenn Du ein Java Projekt in Eclipse angelegt hast, dann sollten die Sourcen alle in dem Verzeichns src liegen.

Wenn ein Package angegeben wird, so muss dies als Verzeichnisstruktur verwendet werden, wobei die . durch / ersetzt werden. Der Code sollte also bei dem Projekt in src/de/habelitz/uebung06/Bruchmultiplikation.java liegen.
 
Beide Dateien liegen meiner Meinung nach im richtigen Ordner.
Auch die Package-Angabe im Programm scheint mir korrekt zu sein.
Hier der Screenshot:
Screenshot 2022-06-29 12.07.34.png
 
In der Klasse Bruchmultiplikation sind Compile Fehler (erkennbar an den Roten x links bzw. den Roten Markern rechts).

Die müssen auf jeden Fall beseitigt werden, sonst kann man die Klasse nicht sinnvoll aufrufen.
 
Dann schau mal, was er Dir genau für Probleme in der Datei meldet. Da sind Fehler in der Datei und daher kann er das nicht übersetzten. Da die Datei sich nicht übersetzen lässt, wird keine .class erzeugt und damit kann er die Klasse auch nicht finden.

Also einfach mal etwas nach unten scrollen um zu schauen, woran es scheitert.

Evtl. erkennt er die Klasse Bruch nicht, weil die Klasse Bruch auch rot markiert ist. Daher wäre die Folgefrage: Was stimmt bei Dir mit Bruch nicht?
 
Grundsätzlich ist es ein guter Ratschlag:
* Keine Compile-Fehler irgendwo zu haben - jedes deiner Projekte hat rote X, was darauf hindeutet, dass irgendwas nicht kompiliert.

Das führt zu Folgefehlern und kann je nach Build-Tool auch dazu führen, dass eigentliche saubere Klassen nicht gebaut werden, weil der Build vorher abbricht.
 

Zurück
Oben