matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavaFehlermeldung
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Java" - Fehlermeldung
Fehlermeldung < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Fehlermeldung: Idee?
Status: (Frage) beantwortet Status 
Datum: 10:25 Fr 18.11.2011
Autor: mikexx

Aufgabe
Bekomme, wenn ich mein Programm ausführen will, folgende Fehlermeldung:

"Could not find the main class."

Was kann ich machen?

Hallo, ich bin Neuling und habe leider keine Idee, was ich falsch gemacht habe.

        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 10:39 Fr 18.11.2011
Autor: Stoecki

hallo,

wie der fehler sagt, fehlt eine main-methode. also sowas wie
public static void main(){...}
diese methode ist der start eines jeden programms. wenn du code probleme hast, solltest du in zukunft immer code-beispiele mit posten. andernfalls kann es schwer bis unmöglich sein zu sagen, was falsch ist.

gruß bernhard

Bezug
                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:40 Fr 18.11.2011
Autor: mikexx

Also daran kann es nicht liegen!

Denn die main-Methode ist schon vorhanden...



Bezug
                        
Bezug
Fehlermeldung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:43 Fr 18.11.2011
Autor: Stoecki

poste bitte ein code-beispiel. sonst wird man dir wahrscheinlich nicht helfen können

Bezug
                                
Bezug
Fehlermeldung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:45 Fr 18.11.2011
Autor: mikexx

Also dies ist eine Klasse, die die Methoden einer anderen Klasse (Uebung2) testen soll und hier ist die main-methode eigentlich ja enthalten!

class Uebung2Test {

public static void tassert1(String aStr, boolean y, Uebung2 b0, Uebung2 b1){

if(y) {
System.out.println("PASS: " + aStr);
} else {
System.out.println("FAIL: " + aStr);
}
}

public static void main(String[] args){

Uebung2 b0=new Uebung2();
Uebung2 b1=new Uebung2();



tassert1("z.theDoWhileMethod(5)", b0.theDoWhileMethod(5)==b1.aForMethod(5), b0, b1);
tassert1("w.testWhile(3,7)", b0.testWhile(3,7)==b1.ifelseAnw(3,7),b0,b1);
tassert1("m.performActionSwitch(5)", b0.performActionSwitch('a')==b1.performActionBranch('a'),b0,b1);
tassert1("g.getWithWhile(5)", b0.getWithWhile(5)==b1.getWithDoWhile(5),b0,b1);
tassert1("h.crucialFunction001(-200,50)", b0.crucialFunction001(-200,50)==true,b0,b1);

}

}

Bezug
                                        
Bezug
Fehlermeldung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:05 Fr 18.11.2011
Autor: Stoecki

nimm die main mal aus der class raus. ich meine in java muss die main klassenunabhängig sein, wobei mein java auch schon 5 jahre her ist:

class Uebung2Test {

  public static void tassert1(String aStr, boolean y, Uebung2 b0, Uebung2 b1){

    if(y) {
      System.out.println("PASS: " + aStr);
    } else {
      System.out.println("FAIL: " + aStr);
    }
  }

}

public static void main(String[] args){

  Uebung2 b0=new Uebung2();
  Uebung2 b1=new Uebung2();



  tassert1("z.theDoWhileMethod(5)", b0.theDoWhileMethod(5)==b1.aForMethod(5), b0, b1);
tassert1("w.testWhile(3,7)", b0.testWhile(3,7)==b1.ifelseAnw(3,7),b0,b1);
  tassert1("m.performActionSwitch(5)", b0.performActionSwitch('a')==b1.performActionBranch('a'),b0,b1);
  tassert1("g.getWithWhile(5)", b0.getWithWhile(5)==b1.getWithDoWhile(5),b0,b1);
  tassert1("h.crucialFunction001(-200,50)", b0.crucialFunction001(-200,50)==true,b0,b1);

}

gruß bernhard

Bezug
                                                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:13 Fr 18.11.2011
Autor: mikexx

Hm, das stimmt (glaube ich!) nicht, denn wir hatten beim ersten Übungsblatt Folgendes vorgegeben:


class Uebung1 {
    
    public static void tassert(String aStr, boolean a, MyBitSet b0, MyBitSet b1) {
        
        if ( a ) {
            System.out.println("PASS: " + aStr);
        }
        else {
            System.out.println("FAIL: " + aStr);
            System.out.println("b0: " + b0.toString());
            System.out.println("b1: " + b1.toString());
        }
        
    }
    
    
    /**
     *  Methode zum Test der eigentlich zu entwickelnden Klasse
     */
    public static void main(String[] args) {
        
        MyBitSet b0 = new MyBitSet();
        MyBitSet b1 = new MyBitSet();

        tassert("b0.empty()",b0.empty(),b0,b1);
        tassert("b0.card() == 0",b0.card() == 0,b0,b1);

        
        
        b0.insert(31);
        tassert("b0.elem(31)",b0.hasElem(31),b0,b1);

        b1.insert(0);
        b1.insert(10);
        b1.insert(320);
        b1.insert(31);
        b1.insert(20);
        b1.insert(17);
        b1.insert(19);
        b1.insert(3);
        
        tassert("b1.card() == 7", b1.card() == 7, b0, b1);
        
        
        b0.setMinus(b1);
        tassert("b0.empty()",b0.empty(),b0,b1);
        
        b0.insert(31);
        b0.insert(17);
        b0.insert(23);
        b0.insert(1);
        b0.setMinus(b1);
        tassert("!b0.empty()",!b0.empty(),b0,b1);
        tassert("b0.toString() equals { 1, 23 }",b0.toString().equals("{ 1, 23 }"),b0,b1);

        
        
    }
    
}


Da steht die main-Methode ja auch IN der Klasse, oder?

Bezug
                                                        
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:35 Fr 18.11.2011
Autor: mikexx

Ich habe mal eine Seite gefunden:

http://download.oracle.com/javase/tutorial/getStarted/problems/

Und da bei Runtime Errors wird glaube ich mein Problem geschildert.

Wer kann helfen, es bei mir zu verbessern (alleine trau ich mich nicht so richtig, hab Angst, alles zu verstellen :-))?

Bezug
                                                                
Bezug
Fehlermeldung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:41 Fr 18.11.2011
Autor: Stoecki

hab dazu eine reinstall anleitung gefunden. schau mal []hier

Bezug
                                                                        
Bezug
Fehlermeldung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:45 Fr 18.11.2011
Autor: mikexx

muss ich das echt alles neu installieren?

und wenn danach nix mehr geht??

Bezug
                                                                                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:57 Fr 18.11.2011
Autor: mikexx

Die genaue Fehlermeldung lautet:

java.lang.NoClassDefFoundError: Uebung2$Uebung2Test
Caused by: java.lang.ClassNotFoundException: Uebung2$Uebung2Test
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Exception in thread "main"

Bezug
                                                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 12:48 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Die genaue Fehlermeldung lautet:
>  
> java.lang.NoClassDefFoundError: Uebung2$Uebung2Test
>  Caused by: java.lang.ClassNotFoundException:
> Uebung2$Uebung2Test
>   at
> java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>   at java.security.AccessController.doPrivileged(Native
> Method)
>   at
> java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>   at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>   at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>  Exception in thread "main"  


Ist das Programm "Uebung2.java" erfolgreich compiliert (übersetzt)
worden, dann stellt sich die Frage, wie das Programm aufgerufen
worden ist.

Eine Fehlerquelle ist , wenn das Programm so aufgerufen wird:

java Uebung2.class


Gruss
MathePower

Bezug
                                                                
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 13:17 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Ich habe mal eine Seite gefunden:
>  
> http://download.oracle.com/javase/tutorial/getStarted/problems/
>  
> Und da bei Runtime Errors wird glaube ich mein Problem
> geschildert.
>  
> Wer kann helfen, es bei mir zu verbessern (alleine trau ich
> mich nicht so richtig, hab Angst, alles zu verstellen :-))?


Dann poste ob das Programm erfolgreich mit javac compiliert (übersetzt)
wurde und wie das Compilat dann ausgeführt wurde (java)

Compiliert wird die Datei mit der Endung java
Es entsteht eine Datei gleichen Namens mit der Endung class.
Diese wird dann mit "java Dateiname" ausgeführt.


Gruss
MathePower

Bezug
                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 12:51 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Hm, das stimmt (glaube ich!) nicht, denn wir hatten beim
> ersten Übungsblatt Folgendes vorgegeben:
>  
>
> class Uebung1 {
>      
> public static void tassert(String aStr, boolean a, MyBitSet
> b0, MyBitSet b1) {
>          
> if ( a ) {
>              System.out.println("PASS: " + aStr);
>          }
>          else {
>              System.out.println("FAIL: " + aStr);
>              System.out.println("b0: " + b0.toString());
>              System.out.println("b1: " + b1.toString());
>          }
>          
> }
>      
>
> /**
>       *  Methode zum Test der eigentlich zu entwickelnden
> Klasse
>       */
> public static void main(String[] args) {
>          
> MyBitSet b0 = new MyBitSet();
>          MyBitSet b1 = new MyBitSet();
>  
> tassert("b0.empty()",b0.empty(),b0,b1);
>          tassert("b0.card() == 0",b0.card() == 0,b0,b1);
>  
>
>
> b0.insert(31);
>          tassert("b0.elem(31)",b0.hasElem(31),b0,b1);
>  
> b1.insert(0);
>          b1.insert(10);
>          b1.insert(320);
>          b1.insert(31);
>          b1.insert(20);
>          b1.insert(17);
>          b1.insert(19);
>          b1.insert(3);
>          
> tassert("b1.card() == 7", b1.card() == 7, b0, b1);
>          
>
> b0.setMinus(b1);
>          tassert("b0.empty()",b0.empty(),b0,b1);
>          
> b0.insert(31);
>          b0.insert(17);
>          b0.insert(23);
>          b0.insert(1);
>          b0.setMinus(b1);
>          tassert("!b0.empty()",!b0.empty(),b0,b1);
>          tassert("b0.toString() equals { 1, 23
> }",b0.toString().equals("{ 1, 23 }"),b0,b1);
>  
>
>
> }
>      
> }
>  
>
> Da steht die main-Methode ja auch IN der Klasse, oder?


Ja, das ist schon richtig.


Gruss
MathePower

Bezug
                                                                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:22 Fr 18.11.2011
Autor: mikexx

Es hat sich soweit geklärt.

Aber ich habe noch eine andere Frage.


Und zwar wird überall PASS angezeigt, nur bei diesem hier nicht:

tassert1("b0.testWhile(3,7)", b0.testWhile(3,7)==b1.ifelseAnw(3,7),b0,b1);


Das he0t, daß

b0.testWhile(3,7)==b1.ifelseAnw(3,7)

nicht stimmen wird.


Die dazugehörigen Methoden sind (das ist ein von mir selbst ausgedachtes Beispiel:)

public int doIf(int a, int b){
a=a+b;
return a;


}

public int doElse(int a, int b){
a=a*b;
return a;
}

public int testWhile(int a, int b){


while(a>b){
a=doIf(a,b);
break;
}
while(a<=b){
a=doElse(a,b);
break;
}

return a;

}

public int ifelseAnw(int a, int b){
if (a>b){
doIf(a,b);
} else {
doElse(a,b);
}
return a;
}



Ich sehe nicht, wo der Fehler ist, sodaß UNGLEICH, also false herauskommt. Wenn ich beide Methoden mit der Eingabe 3 und 7 durchgehe, kommt für mich 21 heraus.

Bezug
                                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 13:39 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Es hat sich soweit geklärt.
>  
> Aber ich habe noch eine andere Frage.
>  
>
> Und zwar wird überall PASS angezeigt, nur bei diesem hier
> nicht:
>  
> tassert1("b0.testWhile(3,7)",
> b0.testWhile(3,7)==b1.ifelseAnw(3,7),b0,b1);
>  
>
> Das he0t, daß
>  
> b0.testWhile(3,7)==b1.ifelseAnw(3,7)
>  
> nicht stimmen wird.
>  
>
> Die dazugehörigen Methoden sind (das ist ein von mir
> selbst ausgedachtes Beispiel:)
>  
> public int doIf(int a, int b){
>   a=a+b;
>   return a;
>  
>
> }
>  
> public int doElse(int a, int b){
>   a=a*b;
>   return a;
>   }
>  
> public int testWhile(int a, int b){
>  
>
> while(a>b){
>   a=doIf(a,b);
>   break;
>   }
>   while(a<=b){
>   a=doElse(a,b);
>   break;
>   }
>  
> return a;
>  
> }
>  
> public int ifelseAnw(int a, int b){
>   if (a>b){
>   doIf(a,b);


Schreibe hier: "a=doIf(a,b);"


>   } else {
>   doElse(a,b);


Ebenso hier: "a=doElse(a.,b);"


>   }
>   return a;
>   }
>  
>
>
> Ich sehe nicht, wo der Fehler ist, sodaß UNGLEICH, also
> false herauskommt. Wenn ich beide Methoden mit der Eingabe
> 3 und 7 durchgehe, kommt für mich 21 heraus.


In der Methode ifelseAnw werden die Methoden doIf bzw. doElse
aufgerufen. Dies geben einen Wert zurück. Dies ist in der
aufrufenden Methode jedoch nicht berücksichtigt.


Gruss
MathePower

Bezug
                                                                                
Bezug
Fehlermeldung: Klappt! .D
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:56 Fr 18.11.2011
Autor: mikexx

Danke und nochmal danke!

Bezug
                                                                                
Bezug
Fehlermeldung: result
Status: (Frage) beantwortet Status 
Datum: 18:48 Fr 18.11.2011
Autor: mikexx

Aufgabe
Mal eine ganz allgemeine Frage...

Wenn am Ende einer Methode return steht.. (zum Beispiel wird eine Integer-Zahl zurückgegeben): An was oder wen wird diese Zahl zurückgegeben?

Als Beispiel würde mir einfallen:

Am Beginn der Klasse hat man zum Beispiel

int i;

deklariert.

Dann könnte man zum Beispiel

i=a setzen (wenn die Methode a zurückgibt).



Aber was ist, wenn eine Klasse nur aus Methoden besteht... an wen oder was wird da der return-Wert eigentlich zurückgegeben?

Wieso kann man zum Beispiel die obigen Methoden vergleichen? Okay bei beiden steht return a und man kann schauen, ob das return a identisch ist... aber wie funtioniert der Vergleich eigentlich:

Die eine Methode gibt zum Beispiel 5 zurück und die zweite Methode auch... wenn da return a im Methodenrumpf steht wird die Schleife doch verlassen.. und was wird da dann eigentlich verglichen??

Bezug
                                                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 19:00 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Mal eine ganz allgemeine Frage...
>  
> Wenn am Ende einer Methode return steht.. (zum Beispiel
> wird eine Integer-Zahl zurückgegeben): An was oder wen
> wird diese Zahl zurückgegeben?
>  Als Beispiel würde mir einfallen:
>  
> Am Beginn der Klasse hat man zum Beispiel
>  
> int i;
>  
> deklariert.
>  
> Dann könnte man zum Beispiel
>
> i=a setzen (wenn die Methode a zurückgibt).
>  
>
>
> Aber was ist, wenn eine Klasse nur aus Methoden besteht...
> an wen oder was wird da der return-Wert eigentlich
> zurückgegeben?
>


Der return-Wert wird an die aufrufende Methode
zur Weiterverarbeitung zurückgegeben.


> Wieso kann man zum Beispiel die obigen Methoden
> vergleichen? Okay bei beiden steht return a und man kann
> schauen, ob das return a identisch ist... aber wie
> funtioniert der Vergleich eigentlich:
>  
> Die eine Methode gibt zum Beispiel 5 zurück und die zweite
> Methode auch... wenn da return a im Methodenrumpf steht
> wird die Schleife doch verlassen.. und was wird da dann
> eigentlich verglichen??


Die Rückgabewerte der beiden Methoden können
miteinander verglichen werden, da diese Methoden
den selben Rückgabetyp (hier: int) haben.


Gruss
MathePower

Bezug
                                                                                                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:08 Fr 18.11.2011
Autor: mikexx

Das heißt:

Der Aufrufer wäre hier z.b.

b1.ifelseAnw(5,6), da kommt hier 30 heraus, das bedeutet, daß dann der Wert 30 an wen zurückgegeben wird?

Bezug
                                                                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 19:20 Fr 18.11.2011
Autor: MathePower

Hallo mikexx,

> Das heißt:
>  
> Der Aufrufer wäre hier z.b.
>  
> b1.ifelseAnw(5,6), da kommt hier 30 heraus, das bedeutet,
> daß dann der Wert 30 an wen zurückgegeben wird?


Ja.


Gruss
MathePower


Bezug
                                                                                                                
Bezug
Fehlermeldung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:25 Fr 18.11.2011
Autor: mikexx

Ja?

Ich hatte doch gefragt, an wen dann 30 zurückgegeben wird..:D

Da ist JA keine Antwort. :D

An ifelseAnw(5,6) also quasi wird der Wert zwischengeparkt dort? Und man KÖNNTE damit eine neue int-Variable initialisieren MUSS man aber nicht, dann parkt er da eben??


Oder an b1.ifelseAnw(5,6)?

(das mit dem Punkt bezeichnet nur, das die Methode an ein Objekt gebunden ist, oder? also Korrekt müsste man sagen:

Der Wert 30 wird an die Methode ifelseAnw(5,6) des Objekts b1 der Klasse Uebung2 zurückgegeben?



Bezug
                                                                                                                        
Bezug
Fehlermeldung: Antwort
Status: (Antwort) fertig Status 
Datum: 03:58 Sa 19.11.2011
Autor: MathePower

Hallo mikexx,

> Ja?
>  
> Ich hatte doch gefragt, an wen dann 30 zurückgegeben
> wird..:D
>  
> Da ist JA keine Antwort. :D
>  
> An ifelseAnw(5,6) also quasi wird der Wert zwischengeparkt
> dort? Und man KÖNNTE damit eine neue int-Variable
> initialisieren MUSS man aber nicht, dann parkt er da
> eben??
>  


So kannst Du das auch sehen.


>
> Oder an b1.ifelseAnw(5,6)?
>  
> (das mit dem Punkt bezeichnet nur, das die Methode an ein
> Objekt gebunden ist, oder? also Korrekt müsste man sagen:
>  
> Der Wert 30 wird an die Methode ifelseAnw(5,6) des Objekts
> b1 der Klasse Uebung2 zurückgegeben?
>  


Nein.

Korrekt ist; die Methode b1.ifelseAnw(5,6) liefert einen Wert zurück,
der weiterverarbeitet werden kann, wie z.B. durch einen Vergleich.

  
Gruss
MathePower

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]