Kann Java Programm nicht starten

mitti2000

Mitglied
Hallo zusammen

Ich habe vor ein paar Tagen angefangen mit Java zu programmieren. Angefangen habe ich auf einer webseite wo man Übungen machen kann, welche man gleich auf der Webseite ausführen kann.

Nun will ich aber selber Programme kompilieren.

Hier mal mein Hallo Welt Code:

Java:
package practice.practice1;

public class practice1{

public static void main (String[] args)

	{
	System.out.println("Hallo Welt");
	}

}

Ich habe JDE 7 installiert und beim kompilieren in der Kommandozeile mit "javac practice1.java" tritt auch kein Fehler auf.
Wenn ich aber das Programm mit "java practice1" starten will, bekomme ich folgende Fehlermeldung:

Exeption in thread "main" java.lang.NoClassDefFoundError: practice1 (wrong name: practice/practice1/practice1)
at java.lang.ClassLoader.defineClass1(Native Method)
at. java.lang.ClassLoader.defineClass(Unknows Source)
.
.
.
(usw)

Was ich bisher gefunden habe ist, dass es ein Problem mit den Umgebungsvariablen sein kann.

Diese sind folgendermassen gesetzt:
CLASSPATH = .;C:\Program Files\Java\jre7\lib\ext\QTJava.zip;C:\Program Files\Java\jre7\lib\
JAVA_HOME = C:\Program Files\Java\jdk1.7.0_03
Path = ...;C:\Program Files\Java\jdk1.7.0_03\bin

Ich habe auch schon Eclipse als IDE ausprobiert. Dort läuft das Programm ohne Probleme.

Kann mir irgendwer helfen?

Vielen Dank
mitti2000
 
B

Beni

Gast
Du musst das Programm mit "java practice.pratice1.practice1" starten, abstrakt gesehen "java package-name.class-name". Und "java" musst du im dem Ordner starten, in dem auch "practice" liegt.
 

irgendjemand

Top Contributor
ist google bei dir kaputt oder bist du zu faul zum suchen ?

die fehlermeldung sagt doch alles ...

du versuchst eine klasse in einem verzeichnis zu callen was so wohl irgendwie falsch ist ...

deine klasse hat den namen "practice1" *übrigens FALSCH : wenn dann "Practice1"* und steckt im package "practice.practice1"

also musst du diese klasse auch so callen

[c]java practice.practice1.Practice1[/c]

und musst dich dabei im entsprechenden überordner von "practice" befinden
 

mitti2000

Mitglied
@Beni

Vielen Dank. Hat geklappt. Wieder was gelernt.

@irgendjemand

ist google bei dir kaputt oder bist du zu faul zum suchen ?
Ich habe eine halbe Stunde damit verbracht die Fehlermeldung zu googeln. Bin aber dabei nicht fündig geworden.

die fehlermeldung sagt doch alles ...
Kann sein. Dazu muss man die Fehlermeldung aber lesen können. Ich kann grade mal Hallo Welt ausgeben und du erwartest von mir, eine Fehlermeldung korrekt zu interpretieren?

Trotzdem auch dir danke.

mitti2000
 

jgh

Top Contributor
Kann sein. Dazu muss man die Fehlermeldung aber lesen können. Ich kann grade mal Hallo Welt ausgeben und du erwartest von mir, eine Fehlermeldung korrekt zu interpretieren?

Trotzdem auch dir danke.

mitti2000

Coole Antwort auf eine überflüssige Bemerkung...von jemanden, der gerade das erste HelloWorld-Programm schreibt. Respekt!!!!
 

irgendjemand

Top Contributor
@TO
sorry ... aber was ist daran nicht zu verstehen ?

[c]Exception in thread "main" java.lang.NoClassDefFoundError: practice1 (wrong name: practice/practice1/practice1)[/c]

sagt doch alles

Exception in thread main -> fehler im main-thread *also dem thread von wo aus man andere startet und in main(String[]) eingesprungen wird*
java.lang.NoClassDefFoundError -> kuggst du in DOC
"practice1" -> fehlerhafter klassenname
rest : brgündung : "practice1" ist falsch und es müsste eigentlich "practice.practice1.practice1" heißen

dafür das du google nicht verwenden kannst und dem englischen scheinbar auch nicht mächtig bist kann ich doch nichts ... aber die info WAS du falsch gemacht hast hast du von der VM ganz klar angesagt bekommen ...
 

mitti2000

Mitglied
Eigentlich ist das Thema ja gelöst und kann geschlossen werden. Aber ich will dir trotzdem noch eine Antwort geben.

Zuerst muss ich sagen, dass ich fliessend Englisch spreche (und schreibe) und Englisch die Sprache ist, mit welcher ich mich täglich mit meiner Frau unterhalte (da sie kein Deutsch spricht).
Technisches, fachspezifisches Englisch ist jedoch ein anderes Thema.

Übersetzt mit "normalem" Englisch würde die Fehlermeldung folgendes bedeuten:

Ausnahme im Faden:toll: "main" java.lang.NoClassDefFoundError: practice1 (Falscher Name: practice/practice1/practice1)

also dem thread von wo aus man andere startet und in main(String[]) eingesprungen wird

Wenn es nach mir geht ist das kein Deutsch denn ich verstehe davon kein Wort :noe:

Folgendes habe ich in der doc gefunden:
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.

The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
...und jetzt erklär mir mal was ich als Anfänger mit diesem Fachchinesisch anfangen soll.


"practice1" -> fehlerhafter klassenname
rest : brgündung : "practice1" ist falsch und es müsste eigentlich "practice.practice1.practice1" heißen
Gemäss meines Wissens zur Zeit der Erstellung des Programms dachte ich, dass ich meine Klasse benennen kann wie ich will solange der Dateiname derselbe ist.
Aus der Begründung kann ein Anfänger auch nicht herauslesen, dass das Problem nicht im Code liegt sondern nur daran, dass das Programm falsch gestartet wird.

dafür das du google nicht verwenden kannst
verstehe ich als Informatiker als Beleidigung und werde ich deshalb auch nicht weiter kommentieren.

Zum Schluss noch dies. Wenn du das nächste Mal einem Anfänger helfen willst, was btw sehr löblich ist, lass doch die unnötigen, teils beleidigenden Kommentare beiseite. Du hilfst damit nicht nur dem Anfänger sonder auch deinem Gewissen.

Grüsse
mitti2000
 

irgendjemand

Top Contributor
ne ganz ernsthaft ... mein post war bewusst abwertend formuliert weil du 1) nicht der erste bist der genau diese frage stellt und 2) du selbst gesagt hast : "und jetzt erklär mir mal was ich als Anfänger mit diesem Fachchinesisch anfangen soll"

wenn es dir auch nicht mal weiterhilft das du auf grund deiner englischkenntnisse diesen text ins deutsche zu übersetzen frage ich mich wie du dann informatiker geworden bist ... und vor allem : auf welchem gebiet ... fach-IT - anwendungsentwicklung *oder schlicht : programmiere* kann ich mir nach der aussage erlich gesagt nicht mehr wirklich vorstellen ...

um es dir mal vielleicht etwas ausführlicher zu erklären

google doch mal nach "Java ist auch eine Insel" und suche dort das kapitel über die in java sog. "Packages" ... dort steht ziemlich groß und deutlich auch für anfänger verständlich das es eben nicht nur darauf ankommt das das source-file den exakt gleichen namen trägt wie die klassensignatur *und klassen schreibt man immer noch UpperCamelCase -> google : "java naming conventions"* ... sondern auch darauf das das source-file entsprechend des in ihm vermerkten "package" auch in den richtigen unter-ordnern liegt ...

wenn du also in einer klasse das package "foo.bar" definierst ... dann muss sich die klasse auch relativ zu deinem aktuellen arbeitsverzeichnis der console auch in folgendem unterordner befinden : ./foo/bar/DeineKlasse.java ... entsprechend wird beim compilen das class-file direkt daneben gelegt und heißt dann ./foo/bar/DeineKlasse.class ... *ich hoffe du weist das der punkt das zeichen fürs aktuelle verzeichnis is*

ergo musst du um die klasse nun zu starten auch folgend callen : "java foo.bar.DeineKlasse" ...

und genau das wird eigentlich in jedem besseren anfänger hand-buch erklärt ...

darum halten hier auch viele nichts von diesem online-kram mit interaktiver server-software *mal abgesehen von hdi's video kurs der nach dem was ich bisher gesehen habe mit ner handvoll büchern im regal vermutlich das beste deutschsprachige java-tutorial ist das ich persönlich kenne* ... weil dann eben solche fehler auf dem server nicht auffallen da dort die engine clever genug ist um die files vorher zu analysieren ... ins entsprechende verzeichnis zu packen und auch entsprechend zu callen ...

wenn du das von deiner console auf dem eigenen rechner nicht hinbekommst fehlen dir wohl in diesem punkt noch grundlagen ...


und noch mal zurück zum "einsprungspunkt public static void main(String[])"
ein java programm wird immer auf eine fest definierte art und weise gestartet ... nämlich über eine spezielle methode mit der signatur : "public static void main(String[])" ... sollte aus anderen sprachen bekannt sein *in abgewandelter form* ...
main() wiederum kann natürlich nur direkt von der VM im sog. static-context angesprungen werden wenn die gesamte klasse als "public" definiert und damit für alles und jeden zugänglich ist ...

auch DAS findet man eigentlich in jedem einsteigerbuch ...


ich lege dir also jetzt im guten echt ans herz : google dir die "Java-Insel" und lege dir zwei bis vier gute , für anfänger geeignete bücher *dazu findet sich was in unserer FAQ* zu und lass diesen online-schwachsinn links liegen ... denn der hält ja scheinbar nicht was er verspricht ... sonst hättest du diese frage *die wie gesagt schon bestimmt mehr als eine millionen mal in allen erdenklichen foren und sprachen gestellt wurde* hier nicht ein weiteres mal gestellt ... woraus ich geschlossen habe das du scheinbar nicht in der lage bist google soweit zu verwenden um diese millionen von antworten selbstständig zu finden ...

du kannst dich entscheiden : entweder du gehst den "schweren" weg über einige bücher und viel do-it-yourself ... oder den vermeintlich "einfachen" und wirst dann müde belächelt da du es weder verstanden hast noch in der lage bist mit hilfe google das problem zu lösen ... überleg gut welcher der wohl bessere weg sein wird ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Java-Programm läuft bei installierter JDK aber nicht mit JRE? Java Basics - Anfänger-Themen 5
C Input/Output Textdatei vom Java-Programm nicht geladen Java Basics - Anfänger-Themen 58
C Programm JAR startet nicht - Could not create the Java Virtual Machine Java Basics - Anfänger-Themen 4
H Ich kann mein Java Programm Test.class nicht ausführen Java Basics - Anfänger-Themen 6
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
P Java Programm läuft nicht auf MAC Java Basics - Anfänger-Themen 7
B Java programm mit Arrays. finde den Fehler nicht Java Basics - Anfänger-Themen 3
S java programm started nicht: invalid or corrupt jarfile Java Basics - Anfänger-Themen 3
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
G Java-Programm Terminal Java Basics - Anfänger-Themen 2
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
I Java Programm sieht wie exe aus. Java Basics - Anfänger-Themen 3
G Java-Programm weitergeben Java Basics - Anfänger-Themen 14
W Java Programm mit API Anbindung Java Basics - Anfänger-Themen 2
D Java Programm mit JavaScript einbinden Java Basics - Anfänger-Themen 8
X Java Programm MacOS Java Basics - Anfänger-Themen 1
F Java Programm schließen Java Basics - Anfänger-Themen 1
M Java Methode editierbar machen im Programm Java Basics - Anfänger-Themen 62
B Mit Java anderes Java Programm starten Java Basics - Anfänger-Themen 3
J Java Programm Java Basics - Anfänger-Themen 29
B Java Eclipse Programm in einer Batch ausführen Java Basics - Anfänger-Themen 3
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
S Bestehendes Java Programm, einen festen Wert ändern Java Basics - Anfänger-Themen 17
L Java Zip-Programm Java Basics - Anfänger-Themen 16
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
B Brauch Hilfe für Java Programm Java Basics - Anfänger-Themen 12
T CMD über Java-Programm aufrufen Java Basics - Anfänger-Themen 2
L Java-Programm kompilieren Java Basics - Anfänger-Themen 24
D Java BlueJ Programm wiederholen? Java Basics - Anfänger-Themen 6
M Java Programm: Lottozahlen Java Basics - Anfänger-Themen 4
I Java Programm Java Basics - Anfänger-Themen 12
F Java Programm öffnen Java Basics - Anfänger-Themen 3
A Erste Schritte Programm in Shell mit bestimmter Java-Version aufrufen Java Basics - Anfänger-Themen 10
J Pdf-Dokument im Java-Programm öffnen Java Basics - Anfänger-Themen 3
M Chat Programm in Java Java Basics - Anfänger-Themen 1
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
M Mein erstes Java Programm Java Basics - Anfänger-Themen 5
L Herunterladbares Java Programm in bestimmten Ordner speicher Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
T CMD mit Java Programm öffnen? Java Basics - Anfänger-Themen 5
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
M Erste Schritte Java programm unable to access Java Basics - Anfänger-Themen 10
G Klassen einfacher Fehler in einem Java Programm. Java Basics - Anfänger-Themen 5
G Methoden Fehler in einfachem Java Programm. Java Basics - Anfänger-Themen 9
T Selbst erstellten Dateityp mit java Programm assoziieren? Java Basics - Anfänger-Themen 4
S Programm wie Java? Java Basics - Anfänger-Themen 10
M C++ programm (kompiliertes) aus java aufrufen Java Basics - Anfänger-Themen 7
A Eclipse - Java-Programm exportieren für Ubuntu TLS 10 Java Basics - Anfänger-Themen 9
F Java-Programm aus CMD ausführen mit Parametern Java Basics - Anfänger-Themen 7
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
P Probleme Java Programm Java Basics - Anfänger-Themen 6
MiMa Lauffähiges Java Programm erstellen Java Basics - Anfänger-Themen 4
J C++ Bitmanipulations-Programm in Java umwandeln Java Basics - Anfänger-Themen 10
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Externes Java Programm starten Java Basics - Anfänger-Themen 9
D Java Programm auf Kommandozeile durchführen Java Basics - Anfänger-Themen 12
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
S Hilfe zu Java-Programm und JUnit Test!! Java Basics - Anfänger-Themen 5
P Java Programm in Powerpoint Java Basics - Anfänger-Themen 5
Y Java Programm URL und String Vergleich! Java Basics - Anfänger-Themen 4
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
P Java Programm von außen aufrufen Java Basics - Anfänger-Themen 8
D Java programm durch vorgegebene bat ausführen Java Basics - Anfänger-Themen 3
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
S Interpreter-Fehler Java - Programm ausführen! Java Basics - Anfänger-Themen 12
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
T Mac OSX - Programm aus Java öffnen Java Basics - Anfänger-Themen 3
H Wie kann ich offline ein Java Programm abspeichern Java Basics - Anfänger-Themen 14
U Visual-Basic Programm mit Java steuern Java Basics - Anfänger-Themen 8
K In MySQL Select Variablen aus Java Programm benutzen Java Basics - Anfänger-Themen 8
J Java-Programm starten Java Basics - Anfänger-Themen 6
C java programm mit Texten, speichern und so Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben