Programm wird nicht auf der Konsole ausgeführt

JvKbF

Mitglied
Hallo,
ich habe mein Programm mithilfe von der Konsole ( also javac ) compiliert und möchte es nun ausführen, allerdings bringt er mir den Fehler, dass er die Hauptklasse nicht finden oder geladen werden kann.

Ich weis mein programmierstil ist hier etwas einfältig aber bitte hier nur das Problem beachten. Das Problem wird ja hier nichts mit dem restlichen code zu tu haben.


meine Befehle in der CMD heißen:

javac Entgeltberechner.java
java Entgeltberechner

Ja die PathVariablen sind gesetzt und ja ich befinde mich im richtigen Ordner.


Hier nochmal die Fehlermeldung:


"Fehler: Hauptklasse Entgeltberechner konnte nicht gefunden oder geladen werden

Java:
package Entgeltberechner;

import java.util.Scanner;

public class Entgeltberechner {
    public static void main(String args[]){ 
        Scanner s = new Scanner(System.in);
        System.out.println("Bitte Bruttogehalt eingeben.");
        final double Brutto;
        Brutto = s.nextInt();
      
        System.out.println("Bitte Krankenversicherungszusatzbeitrag in Prozent eingeben.");
        double y, Netto, KV;
        KV = 7.30+s.nextDouble();
        KV /= 100;
      
        System.out.println("Haben Sie Kinder? (Y/N)");
        int Freibetrag;
        Freibetrag = 0;
        int Alter;
        double Beitragszuschlag;
        Beitragszuschlag = 1.175;
        String c = s.next();
        char Kinder = c.charAt(0);
        if (Kinder == 89||Kinder == 121){
            System.out.println("Wieviele Kinder Haben Sie?");
            int K;
            K = s.nextInt();
            if(K == 0){
                System.out.println("Wie alt sind Sie?");
                Alter = s.nextInt();
                if(Alter < 24){
                    Beitragszuschlag = Beitragszuschlag;
                }
                else{
                    Beitragszuschlag += 0.25;
                }
              
            }Freibetrag = K * 604;
        }
        else{          
            System.out.println("Wie alt sind Sie?");
            Alter = s.nextInt();          
            if(Alter < 24){
                Beitragszuschlag = Beitragszuschlag;
            }
            else{
                Beitragszuschlag += 0.25;
            }
        }
        Beitragszuschlag /= 100;
        y = Brutto*KV + Brutto*Beitragszuschlag + Brutto*0.108507910669- Freibetrag;
        Netto = Brutto - y;
        if(Netto <= Brutto){
            Netto = Netto;
        }else{
            Netto=Brutto;
        }
        if(Netto >= 0){
            System.out.printf("Bei einem Bruttogehalt von %1.2f Euro erhalten Sie ein Nettogehalt von %1.2f Euro.", Brutto, Netto);
        }else{
            Netto = Netto-Netto-Netto;
            System.out.printf("Bei einem Bruttogehalt von %1.2f Euro machen sie %1.2f Euro Verlust.", Brutto, Netto);
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Also die Package-Struktur bildet eigentlich die Folder-Struktur ab. Der Compiler nimmt ein File, daher ist es ihm egal, aber wenn Du schaust, dann findest Du die Datei Entgeltberechner.class in dem Ordner Entgeltberechner.

Und beim Aufruf hast Du die Klasse mit Package anzugeben, also
java Entgeltberechner.Entgeltberechner

BTW: Packagenamen werden normalerweise klein geschrieben und sollten ein eindeutigen Namen haben. Meist wird dazu eine Domain genommen, die man unter Kontrolle hat. Aber wer dies nicht hat, kann z,B, eine Email-Adresse nehmen wie de.web.meinname.
 
ich habe mein Programm mithilfe von der Konsole ( also javac ) compiliert und möchte es nun ausführen, allerdings bringt er mir den Fehler, dass er die Hauptklasse nicht finden oder geladen werden kann.

Wurde von kneitzel schon gelöst 🙂

Ich weis mein programmierstil ist hier etwas einfältig aber bitte hier nur das Problem beachten.

kneitzel hat dich auch schon darauf hingewiesen: Packgnamen werden normalerweise klein geschrieben.
Ansonsten gehören Variablen auch kleingeschrieben (lowerCamelCase), einzig Klassen werden in UpperCamelCase geschrieben. (und Konstanten generell in Uppercase).

Java:
int Freibetrag;
Freibetrag = 0;

Die beiden Zeilen kann man auch einfach zu einer Zeile zusammenfassen 🙂

Java:
char Kinder = c.charAt(0);
if (Kinder == 89||Kinder == 121) {
   System.out.println("Wieviele Kinder Haben Sie?");
   int K;
   K = s.nextInt();
   if(K == 0) {
     System.out.println("Wie alt sind Sie?");
     Alter = s.nextInt();
     if(Alter < 24) {
       Beitragszuschlag = Beitragszuschlag;
     } else {
       Beitragszuschlag += 0.25;
     }
   }
   Freibetrag = K * 604;
} else {
   System.out.println("Wie alt sind Sie?");
   Alter = s.nextInt();
   if(Alter < 24) {
     Beitragszuschlag = Beitragszuschlag;
   } else {
     Beitragszuschlag += 0.25;
   }
}

Hier hast du doppelten Code, eine Mögliche Anpassung wäre:

Java:
char Kinder = c.charAt(0);
int K = 0;
if (Kinder == 89||Kinder == 121) {
   System.out.println("Wieviele Kinder Haben Sie?");
   K = s.nextInt();
   Freibetrag = K * 604;
}
if(K == 0) {
   System.out.println("Wie alt sind Sie?");
   Alter = s.nextInt();
   if(Alter < 24) {
     Beitragszuschlag = Beitragszuschlag;
   } else {
     Beitragszuschlag += 0.25;
   }
}
 

Neue Themen


Zurück
Oben