Erste Schritte 1. Test Programm

Samuro

Aktives Mitglied
So Liebe Community 🙂

Da mein Problem gestern gut gelöst wurde hab ich mich wieder an mein Buch gesetzt:
(Programmieren mit Java
von:
Hubert Partl
Zentraler Informatikdienst ZID
Universität für Bodenkultur Wien
Version Jan. 2007 )

nun hab ich mich ein bisschen Zeit für mein kleines Test Programm vorgenommen das sieht jetzt folgender Massen so aus:

Java:
public class ProgExpr {
    private static int a;
    private static int b;
    private static int c;
public static void main (String[] args) {
a = 17 ;
System.out.println("a = " + a);
b = 12;
System.out.println("b = " + b);
c = a + b;
System.out.println("a = " + b);
}
}
beim Run (schon compiliert) kommt aber nur eine Fehlermeldung raus wie dieser:

run:
java.lang.NoClassDefFoundError: math/Math
Caused by: java.lang.ClassNotFoundException: math.Math
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: math.Math. Program will exit.
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

was genau mach ich falsch?
 
Zuletzt bearbeitet von einem Moderator:
Also an dem Code ist nichts verkehrt.

Could not find the main class: math.Math. Program will exit.


Er meckert ja auch ganz woanders. Sind auch zu wenig Infos die du uns gibst. Wie kompilierst du/führst du das Programm aus? In einer IDE(wenn ja welche und wie etc.) oder per Konsole(welche Befehle verwendest du? ) ?
 
bei mir meckert er aber auch wenn ich nur diesen code ausführe

Hilft auch nicht wirklich weiter 🙂
Was meckert er denn? Ist es eine Warnung(weil c evtl. nicht gelesen wird? 😀 ) oder wirklich ein Fehler?
Also ich kann da nichts erkennen, vor allem wird dort ja wie schon gesagt etwas mit Math angemeckert. Vllt. hilft ein einfaches
Code:
Project clean
, aber ohne genauere Infos :bahnhof:
 
mal die Infos:
benutze NetBeans 6.9
Das compilen übernimmt er automatisch wenn ich die Datei wieder abspeichere
und ja wenn sonst noch Infos nötig sind fragen 😉
 
Du programmierst nicht zufällig im Notepad oder ähnlichem? Nach einer IDE sieht das jedenfalls nicht aus 😉 (@Edit: OK. Vergiss dass 😉)
Also:
1. In der Standard-JRE gibt es afaik keine Klasse "math.Math" (math/Math). Ich denke das muß "java.lang.Math" heissen.
2. Es sieht so aus, als ob der Fehler aus einer redundanten Importanweisung resultiert, das ist aber höchst unwahrscheinlich. In deinem Beispiel wird die nicht gefundene Klasse jedenfalls nicht benötigt.
3. Wenn das Programm irgendwann mal laufen sollte, wundere dich nicht über die Ausgabe der letzten Zeile (11 im Code). Dort wird wider Erwarten "a = 12" stehen. Ich denke mal, da soll das Ergebnis für "c" hin:[JAVA=11]System.out.println("a + b = " + c);[/code]
 
Für Netbeans fällt mir noch ein: Wie viele Klassen hast du in deinem Testprojekt? Kann es sein, dass eine andere Klasse für den Fehler verantwortlich ist? Wenn dem so ist, lob ich mir mein Eclipse, weil da bekommt man eine Warnung, die besagt, dass das Projekt Fehler enthält und wird gefragt ob es trotzdem ausgeführt werden soll.
 
@spacerat

ersteinmal: DANKE !

nur mit all den "Fachausdrücken" komm ich nicht so klar bin noch in der 9. Klasse 😛
also wenn du mit Klassen Projekte meinst dann hab ich nur das HelloWorld und eben den Test hier offen.
WIESO muss es eigentlich java.lang.Math heissen?? ???:L
 
Die Schulbildung sagt überhaupt nichts aus, in den Standartschulen lernt man meiner Erfahrung nach kaum etwas, was man wirklich brauchen kann. Außer die Grundrechnungsarten, englisch und ein wenig Physik. ^^
java.lang.Math ist eine Klasse, die statische Methoden für mathematische Operationen zu Verfügung stellt. In der Standartapi existiert die Klasse math.Math nicht, deshalb findet er es nicht. Schwer zu sagen was du da gemacht hast, ich denke am sinnvollsten ist es den ganzen Projektordner einfach hochzuladen. Dann kann man ihm direkt anschauen.
 
WIESO muss es eigentlich java.lang.Math heissen?? ???:L
Es muss nicht zwangsläufig immer so heissen. Da du Anfänger bist, glaube ich kaum, dass du bereits eine Klasse "math.Math" selbst erstellt, bzw. von woanders her importiert hast. Als Anfänger macht man sich normalerweise zunächst mit der Standard-API vertraut, bevor man solche Schritte macht. Daraus folgt, dass der obige Fehler wohl aus einer falschen Paketbezeichnung ("math." statt "java.lang.") der Klasse "Math" resultiert.
@Volvagia: Gute Idee 😉
 
ich habs mal in .rar hochgeladen weiss nicht was ihr genau braucht ^^

@edit: pfuui -.- er sagt die Datei sei ungültig
 
Zuletzt bearbeitet:
Naja, so wie es da steht: es ist genau das gleiche Problem.
Es liegt nicht an dem Code, sondern an dem, wie du NetBeans benutzt. In dem anderen Thread wurde dir empfohlen erstmal paar Tutorials zu NetBeans durchzulesen bzw. anzuschauen. Und diese Empfehlung bleibt auch hier bestehen.
 
Dann musst du eben lesen :bahnhof:
Ganz davon mal abgesehen denke ich nicht, dass von 6.8 zu 7.0 ALLES (vor allem die einfachsten Funktionen) geändert wurde.
 
Daraus folgt, dass der obige Fehler wohl aus einer falschen Paketbezeichnung ("math." statt "java.lang.") der Klasse "Math" resultiert.
@Volvagia: Gute Idee 😉

Man sollte aber noch anmerken, dass Klassen aus dem Paket [c]java.lang[/c] nicht importiert werden müssen. Sonst müsste z.B. auch bei Gebrauch eines Strings [c]java.lang.String[/c] importiert werden 😉
 
Man sollte aber noch anmerken, dass Klassen aus dem Paket [c]java.lang[/c] nicht importiert werden müssen. Sonst müsste z.B. auch bei Gebrauch eines Strings [c]java.lang.String[/c] importiert werden 😉
Upsi... natürlich 😉 (der Zeitraum meiner Java-Abstinenz war wohl doch zu lange lol) ... Das würde bedeuten, dass "math.Math" irgendwo im Code innerhalb eines Anweisungsblocks auftaucht und deswegen eigentlich nur "math." davor entfernt werden müsste?
 
Das würde bedeuten, dass "math.Math" irgendwo im Code innerhalb eines Anweisungsblocks auftaucht und deswegen eigentlich nur "math." davor entfernt werden müsste?

Die Klasse heißt eh
Code:
ProgExpr
. Es liegt höhstwahrscheinlich daran, dass die Run-Configuration (oder wie auch immer das bei NetBeans heißt) so eingestellt ist, dass die versucht
Code:
math.Math
zu laden. Also ist es einfach nur ein Fehler in der Benutzung der IDE
 

Zurück
Oben