Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich lerne gerade Java und hätte da mal eine Frage. Und zwar geht es dabei wie der Titel schon sagt um Pakete. Also ich schreib gerade ein simbles Paket und wollte wissen warum das nich funktioniert.
Java:
package deutschenglish;
public class hello
{
public static void main(String []args)
{
System.out.println("Hello!");
}
}
public class Hallo
{
public static void main(String []args)
{
System.out.println("Hallo");
}
}
Auch die Code Beispiele aus meinem Buch funktionieren leider nicht. Hoffer ihr könnt mir helfen. Bitte
mfg Javafan12
package deutschenglish;
public class hello
{
public static void main(String []args)
{
System.out.println("Hello!");
}
}
public class Hallo
{
public static void main(String []args)
{
System.out.println("Hallo");
}
}
Das funkt auch nit und hab diesmal nich 2 mal dekladiert. Fehler Beschreibung hier :
Er gibt dann alles aus und am Ende steht Could not find main class: deutschenglish.hello. Programm will exit
Du musst einfach eine neue Klasse erstellen und dann den Code da rein posten und neu compilieren.
Pass auf , dass du nicht den gleichen klassennamen verwendest.
Deine IDE findet die Class nicht. Also ist dein Classpath falsch eingestellt.
Erstell einfach neu , denn passts , grüße
In was für einem Ordner liegt es denn auf Deiner Festplatte, bzw. wie ist denn genau Dein Compileraufruf? Das sollte mit der Paketstruktur übereinstimmen.
Der is ziemlich lang ich kann den nich aufschreiben, weil wärend die DOS Konsole eingeblendet wird kann ich das nicht abschreiben. Aber schreib mal den Anfang auf. Und das is unter Eigene Dateien gespeichert. Hier die Anzeige der DOS-Konsole:
Exception in thread " main " java.lang.NoClassDefFoundError: deutschenglish/Hello
Caused by: java.lang.ClassNotFoundException: deutscheiglsih.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:200
so braucht ihr noch mehr informationen? Weil das abzuschreiben würde sehr lange dauern weil ich ja wie oben gesagt die DOS-Konsole wegklicken muss. Ich habe dazu auch einen anderen qellcode genommen
Java:
package deutscheinglish;
class Hello
{
public static void main(String []args)
{
System.out.println("Hello!");
}
}
Am besten du installierst die erstmal dass, was ich dir angegeben habe und dann lösen sich deine Probleme alle von alleine.
Dein Code ist richtig , doch deine Pfadangabe ist falsch. Und in der DosKonsole ertwas aufzurufen machen nur noch die wenigsten . Vor allem keine Anfänger
( vor paar Jahren , habe so Informatiker angefangen programmieren zu lernen, aber heutzutage muss man das so nicht mehr machen )
Die oben genannten Dinge sind installiert alle. Aber wie wäre der richtige Pfad name? Außer neatbeans hab ja einen richtig guten Editor der Kompliemiert mit einem Knopfdruck
Ist aber durchaus besser, es erstmal so zu machen denn nur so lernt man diese Fehler überhaupt kennen. Das direkt mit einer mächtigen IDE zu erschlagen ist nicht so gut.
Nochmal die Frage nach der Verzeichnisstruktur in der Du die Klassen speicherst. Wenn Du Pakete deklarierst, solltest Du die Klassendateien auch in entsprechende Verzeichnisse legen.
Danke Verzeichnisse wechsel geht bei mir nich. Mein Editor/Kompiler ist der Editor vom Bildungsserver-Hessen.
Wenn du in Wikipedia Java-Editor eingibst dann siehst du das Bild von einem Editor. Das is der den ich habe. Ach ja ich habe alles Installiert.
Der is ziemlich lang ich kann den nich aufschreiben, weil wärend die DOS Konsole eingeblendet wird kann ich das nicht abschreiben. Aber schreib mal den Anfang auf. Und das is unter Eigene Dateien gespeichert. Hier die Anzeige der DOS-Konsole:
Exception in thread " main " java.lang.NoClassDefFoundError: deutschenglish/Hello
Caused by: java.lang.ClassNotFoundException: deutscheiglsih.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:200
so braucht ihr noch mehr informationen? Weil das abzuschreiben würde sehr lange dauern weil ich ja wie oben gesagt die DOS-Konsole wegklicken muss. Ich habe dazu auch einen anderen qellcode genommen
Java:
package deutscheinglish;
class Hello
{
public static void main(String []args)
{
System.out.println("Hello!");
}
}
Klappt denn etwas bei Dir, wenn Du das mit den packages lässt?
Beschreib doch noch einmal sehr genau die einzelnen Arbeitsschritte die Du durchführst und was dann genau "nicht klappt".
Hast Du diese neue Java Datei mit der Package Deklaration mal in den Ordner /deutsch kopiert und dann von dem Originalordner aus via javac deutsch\Hello kompiliert?
Moinsen. Ich bitte dich einfach die Entwicklungsumgebung Netbeans herunterzuladen und die dann zu installieren.
Dann hast du kein ärger mehr, dass deine Klasse nicht gefunden wird.
Denn so wie du uns dein Problem schilderst können wir dir nicht helfen. Außer du machst Screenshots von jedem Schritt den du machst.
Tut mir leid, aber so reden wir nur gegen ein unbekanntes Problem an, was anscheind nicht an der Sprache java liegt.
1. Öffne den Editor:
Entweder über Start->Alle Programme->Zubehör->Editor
oder über Start->Ausführen->notepad
2. Gib folgenden Quellcode ein:
Java:
package meinpaket;
public class meineklasse {
public static void main(String[] args) {
System.out.println("Meine Klasse in meinem Paket");
}
}
3. Speichere die Datei unter C:\meinpaket als meineklasse.java ab. Der volle Dateiname muss also C:\meinpaket\meineklasse.java sein.
4. Öffne eine Kommandozeile
Entweder über Start->Alle Programme->Zubehör->Eingabeaufforderung
oder über Start->Ausführen->cmd
5. Gib dort "cd C:\" ein und drücke Enter
6. Gib dort "javac meinpaket/meineklasse.java" ein und drücke Enter
7. Gib dort "java meinpaket/meineklasse" ein und drücke Enter
Es sollte jetzt "Meine Klasse in meinem Paket" angezeigt werden
Solltest du einen Fehler der Form "Befehl javac nicht gefunden" oder "Befehl java nicht gefunden" bekommen, dann musst du den bin-Ordner des JDKs erst noch der Umgebungsvariable PATH hinzufügen. Wie das geht solltest du mit Google leicht herausfinden können.
Nachdem du nun die grundlegende Funktionsweise von Paketen verstanden hast, insbesondere dass Ordnerstruktur und Paketstruktur übereinstimmen müssen, kannst du nun in der Hilfe/Dokumentation zu deinem Java-Editor nachlesen wie du damit Java-Dateien kompilierst und ausführst, die in Paketen liegen.
@Andere Poster:
Ich verstehe nicht warum ihr einem Anfänger empfehlt eine IDE wie NetBeans oder Eclipse zu installieren. Ja, sie nehmen einem eine Menge Arbeit ab, aber sie helfen einem nicht dabei zu verstehen, wie und warum es (nicht) funktioniert. In der Schule und insb. in der Prüfung muss er es dann auch mit seinem Java-Editor können und nicht mit irgendeiner riesigen IDE. Ich finde eine IDE sollte man erst dann benutzen, wenn man wenigstens einmal eine Datei mit javac von Hand kompiliert und mit java von Hand ausgeführt hat. Wenn man das mal verstanden hat, dann macht einem eine IDE auch weniger Probleme (wenns dann mal später darum geht zusätzliche Compiler-Flags mitzugeben oder weitere Dateien dem classpath hinzuzufügen).
ich gebe cd>C:\
und dann steht da zugriff verweigert
wie jetzt ich fühl mich verarscht? ich hab volle zugriffsrechte, weil ich keinen admin benutzer habe.
Die Prompt von Windows startet immer mit C , weil das Betriebssystem aus C installiert ist.
Daher brauchst du garnicht das verzeichnis, nein , die festplatte wechseln.
Und unter Windows funktioniert das mit : C:\D:
fertig
Also ich weiß ja nicht ob sich das unter Vista/7 geändert hat, aber bei mir unter XP befindet man sich nach starten der Kommandozeile im Ordner C:\Dokumente und Einstellungen\%USER% und um dann nach C:\ zu wechseln muss man cd C:\ oder cd \ eingeben.
Javafan12, Packages und Klassennamen entsprechen in Java immer den Ordnerstrukturen und Dateinamen. Wenn ich also eine Klasse [c]ch.faetzminator.Foo[/c] erstellen will, muss ich einen ordner ch/ erstellen, da drin einen Ordner faetzminator/ und da drin die Klasse Foo. Mit den Verzeichnisangaben muss man es dann auch kompilieren und ausführen.
Bei mir ist es auch in User. Ok verusche es. Also muss ich jetzt MeinePaket Ordner erstellen und darin den Ordner MeineKlasse und dann die java.class Datei darin speichern?
So hab jetzt die Ordner erstellt und die .class datei darin gespeichert.
Der Compiler zeigt an: Starte C:\Dokumente und Einstellungen\Name(User)\Eigene Dateien\meinPaket\meineKlasse\meineklasse.java
meinPaket\meineKlasse\meineklasse.java würde bedeuten, dass in meineklasse.java oben die Anweisung package meinPaket.meineKlasse steht. Wenn dort nur package meinPaket steht, dann muss die Ordnerstruktur meinPaket\meineklasse.java sein.
Funktioniert nicht ist keine Fehlerbeschreibung.
Poste bitte die genaue Fehlermeldung, den Programmcode der den Fehler verursacht und deine Ordnerstruktur.
Wenn du uns nicht ausreichend Informationen lieferst können wir nur raten.
So die Fehlermeldung ist die gleiceh die ich zu letzt gepostet habe. Was soll ich machen euch als den gleicehn Fehlercode posten. Ich hätte euch schon gesagt wenn sich der code verändert hätte.
package meinpaket;
public class meineklasse {
public static void main(String[] args) {
System.out.println("Meine Klasse in meinem Paket");
}
}
Hast du den als "meineklasse.java" im Ordner "meinpaket" gespeichert?
Hast du eine Kommandzeile geöffnet, in den Ordner navigiert, in dem der Ordner meinpaket mit der Datei meineklasse.java liegt und "javac meinpaket/meineklasse.java" und anschließend "java meinpaket/meineklasse" ausgeführt?
Und dann hast du den Fehler "Zugriff verweigert" bekommen?
Dann solltest du den Ordner mal woanders hin verschieben, wo du ganz sicher Zugriff hast oder es mal mit Administratorrechten probieren.
Wenn das nicht deine Fehlermeldung ist, dann probiere es bitte nochmal und kopiere wirklich 1 zu 1 die Fehlermeldung hier rein.