Fehler: Exception in Thread "main" .......

phreeak

Mitglied
Hallo,
hab folgenen Code,

Code:
import java.io.*;

class oop1_pr8
{
    int schweine;
    int Rinder;
    int schw_gewicht;
    int rind_gewicht;
    int gve_schwein;
    int gve_rind;
    int Kubi_Bgas;
    
    public void oop1_pr8(){
    schweine = 83;
    Rinder = 47;
    schw_gewicht = 109;
    rind_gewicht = 472;
    }
        
    public void gve_berechnen_schweine() {
    gve_schwein = (schweine * schw_gewicht) / 500;
    }
    
    public void gve_berechnen_rind() {
    gve_rind = (Rinder * rind_gewicht) / 500;
    }
    
    public void biogas_kubik() {
    Kubi_Bgas = gve_schwein + gve_rind;
    }
    
    public void main() 
    {
     System.out.println("Grossvieheinheit der Schweine beträgt: "+gve_schwein);
     System.out.println("Grossvieheinheit der Rinder beträgt: "+gve_rind);
     System.out.println("Kubimeter Biogas pro Jahr: "+Kubi_Bgas);
  
    }
        
}

Nun bekomm ich immer den Fehler

Exception in thread "main" java.lang.NoSuchMethodError: main

bin voll am verzweifeln irgendwie. Bei der Vorlesung zu dem Thema, wie man mehrere Funktionen macht, hatte ich ne Grippe und das Script ist auch noch nicht online. Ich weiss, das dass Programm keine main Funktionn zum aufrufen finden, aber wie mach ich sowas?!

Er soll zuerst die berechnungen durchführen (laut der aufgabe) und dann die Ergebnisse anzeigen.



vielen dank im vorraus ;)
 
Also: Du solltest dir ein paar Code Conventions angewöhnen:
(besonders: Klassennamen groß schreiben, Unterstriche sind nicht gern gesehen)

Grund für deine Fehlermeldung ist, dass deine Main-Methode genau folgende Signatur haben muss:
Java:
public static void main(String[] args)
, du hast aber
Java:
public void main()
geschrieben, daher kann die Main-Methode nicht gefunden werden (weil sie nicht static ist) und dein Programm startet nicht.
 
Hi

Statt
Java:
public void main()
das:
Java:
public static void main(String[] arg)

Um dann auf die anderen Methoden (Funktionen) und ints zugreifen zu können,
musst du entweder eine Instanz der Klasse machen
oder auch alles andere static machen, nicht nur main.

Gruß
 
Hi,

das mit

Code:
public static void main(String[] arg)]

hab ich schon getestet, allerdings sind in der Ausgabe variablen und dann meckert er, wegen dem static argument

oop1_pr8.java:41: non-static variable gve_schwein cannot be referenced from a st
atic context
System.out.println("Grossvieheinheit der Schweine betr?ñgt: "+gve_schwein);

^
oop1_pr8.java:42: non-static variable gve_rind cannot be referenced from a stati
c context
System.out.println("Grossvieheinheit der Rinder betr?ñgt: "+gve_rind);
^
oop1_pr8.java:43: non-static variable Kubi_Bgas cannot be referenced from a stat
ic context
System.out.println("Kubimeter Biogas pro Jahr: "+Kubi_Bgas);

^

und
Code:
public void main(String[] arg)]

gibt er mir immernoch den Fehler aus.
 
und wie macht man die static?
ich berechne sie ja in in einer funktion und sie verändern sich.

z.B

Code:
public void gve_berechnen_schweine() {
    gve_schwein = (schweine * schw_gewicht) / 500;
    }

kann schlecht static final davor schreiben.
 
vor die Variable static davor schreiben (bei der Definition).
Und deine Methoden müssen auch alle static sein. An sonsten müsstest du mit Instanzen der Klassen (Objekten) arbeiten, aber das habt ihr wahrscheinlich noch nicht gelernt.
 
vielen dank... xD

nun gibt er es aus, ABER

die variablen haben alle den wert 0, anscheinend führt er die prozeduren da nicht aus, müssen wohl initialisiert werden oder?

Code:
import java.io.*;

public class oop1_pr8
{
    static final int schweine = 83;
    static final int Rinder = 47;
    static final int schw_gewicht = 109;
    static final int rind_gewicht = 472;
    static int gve_schwein;
    static int gve_rind;
    static int KubiBgas;
    
    public void BerechneGVEschwein() {
    gve_schwein = (schweine * schw_gewicht) / 500;
    }
    
    public void BerechneGVErind() {
    gve_rind = (Rinder * rind_gewicht) / 500;
    }
    
    public void BerechneKubiBgas() {
    KubiBgas = (gve_schwein + gve_rind) * 91 / 100 ;
    }
       
    public static void main(String args[]) {
     System.out.println("Grossvieheinheit der Schweine beträgt: "+gve_schwein);
     System.out.println("Grossvieheinheit der Rinder beträgt: "+gve_rind);
     System.out.println("Kubimeter Biogas pro Jahr: "+KubiBgas);
  
    }
}


Java fällt mir irgendwie sehr schwer.
Bei Datenbanken oder html hab ich garkeine Probleme.


edit:

habs selber hinbekommen mit

Code:
     oop1_pr8 berechne = new oop1_pr8();
     berechne.BerechneGVEschwein();
     berechne.BerechneGVErind();
     berechne.BerechneKubiBgas();

haha :D
 
Zuletzt bearbeitet:
Zurück