ubuntuusers.de

Erstes Javaprogramm, erste Fehlermeldung

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Birnenmueller

Anmeldungsdatum:
27. September 2005

Beiträge: 24

Wohnort: Stadt im Rhein-Neckar-Delta

Hallo!

Ich finde diese Anlaufstelle für Neulinge auf dem Gebiet Ubuntu sehr gut. Ich nutze seit einigen Tagen Hoary und bin mehr als begeistert!
Das Wiki und die Tutorials sind sehr hilfreich. Durch eure Anleitungen habe ich es geschafft Java zu installieren und mit eclipse in Betrieb nehmen zu können.

Als Neuling auf dem Gebiet Java halte ich es allerdings für sinnvoller Programme zuerst in einem einfachen Editor zu schreiben und erst mit fortgeschrittener Programmiererfahrung in der Entwicklungsumgebung zu coden.
Ich habe also eine einfache HelloWorld-Klasse in vi erstellt und in meinem Homeverzeichnis gespeichert.

public class Klasse{

        public static void main(String[] args){
                System.out.println("Hello World!");

        }
}

Mit

javac Klasse.java

habe ich dann kompiliert und wollte mit

java Klasse.class

mein erstes Hello World ausführen.
Allerdings warf mir die Kommandozeile dann folgende Fehlermeldung aus:

Exception in thread "main" java.lang.NoClassDefFoundError: Klasse/class

Muss ich ein Package definieren? Oder liegt es an meinen Umgebungsvariablen, also an PATH und CLASSPATH?
Daran habe ich bereits den ganzen Abend herumgebastelt. Aber der Artikel über PATH und CLASSPATH hat mir auch nicht weitergeholfen. Ich habe in der /etc/profiles, sowie in die .bashrc die PATH-variablen eingegeben und trotzdem ist die oben genannte Fehlermeldung zu sehen.

Allerdings funktioniert der Quelltext in eclipse. also kann ich mir gut vorstellen, dass ein ganz einfacher Userfehler von meiner Seite vorliegt. 🙄
Aber ich habe nach den vergangenen Nächten, die ich bereits an meinen Java Problemen geknabbert habe wirklich keinen Nerv noch weiter irgendwelche Newsforen zu durchsuchen. Bin schon sehr froh, dass ich Software über Ubuntu einfacher installieren kann, als bei Fedora Core.

Vielen Dank!
Euer Java- und Ubuntu-Newbie

Birnenmueller

aplysia

Anmeldungsdatum:
11. Juli 2005

Beiträge: 53

Kurzes Zitat von der SUN Homepage:

A common error of beginner Java programmers using the UNIX or Windows 95/NT JDK is to try to interpret the .class file created by the compiler. For example, if you try to interpret the file HelloWorldApp.class rather than the class HelloWorldApp, the interpreter displays this error message:

Can't find class HelloWorldApp.class

The argument to the Java interpreter is the name of the class that you want to use, not the filename.

McPringle

Avatar von McPringle

Anmeldungsdatum:
20. April 2005

Beiträge: 225

Birnenmueller hat geschrieben:

java Klasse.class

Java-Anwendungen werden nicht mit Angabe des Dateinamens, sondern des Klassennamens gestartet:

java Klasse


Gruß
McPringle

Birnenmueller

(Themenstarter)

Anmeldungsdatum:
27. September 2005

Beiträge: 24

Wohnort: Stadt im Rhein-Neckar-Delta

Das ist mir jetzt wirklich peinlich, aber da sieht man, was ich für ein blutiger Programmieranfänger ich bin.
Es ist keine 5 Minuten her, dass ich die oben zitierte Passage auf www.javasoft.com gelesen habe.

Aber vielen Dank, ich probier es gleich aus.

Birnenmueller

(Themenstarter)

Anmeldungsdatum:
27. September 2005

Beiträge: 24

Wohnort: Stadt im Rhein-Neckar-Delta

es lag nur bedingt daran, dass ich die Endung.class mit übergeben habe.

IN $CLASSPATH hatte ich den Pfad zur JDK angegeben. Wenn ich per

CLASSPATH=/homer/user


die Variable ändere, dann funktioniert meine Klasse.
Trotzdem vielen Dank!

aZe

Anmeldungsdatum:
13. Februar 2005

Beiträge: 635

hehe, rat mal wie viele leute diese und letzte woche das so in der FH eingetippt haben 😉 da bist du nicht der einzige!

Apollon

Avatar von Apollon

Anmeldungsdatum:
27. Oktober 2004

Beiträge: 724

Wohnort: Darmstadt

Gut, dass ich von Anfang an alles mit Eclipse gemacht habe. ☺

Birnenmueller

(Themenstarter)

Anmeldungsdatum:
27. September 2005

Beiträge: 24

Wohnort: Stadt im Rhein-Neckar-Delta

Es liegt alles an der CLASSPATH Variable. Dort muss ich defenitiv angeben, wo java nach Klassen suchen soll.

Eclipse habe ich ebenfalls. Läuft einwandfrei und ich wirklich super.
Doch ich möchte den Quelltext erst per Hand eingeben, damit ich mit der Sprache vertraut werde und nicht aufgeschmissen bin, sobald mir keine so komfortable Entwicklungsumgebung zu Verfügung steht. Manche Professoren verlangen den Lösungsquelltext von Klausuren handschriftlich!!!

Birnenmueller

Apollon

Avatar von Apollon

Anmeldungsdatum:
27. Oktober 2004

Beiträge: 724

Wohnort: Darmstadt

Das tun eigentlich alle Professoren. Was hat Eclipse damit zu tun?

FireHawk

Anmeldungsdatum:
11. Mai 2005

Beiträge: 230

Für alle die in Java programmieren sind diese Seiten Pflicht:

SUN Java API Doku
Alle Klassen, Methoden erklärt. Leider weniger deren Zusammenhänge.

Sun Java Doku
Dokusammlung von SUN. Die Tutorials sollten einen tiefen Blick wert sein.

Java ist auch eine Insel
Super Buch um einfach mal was nachzuschlagen oder um die Sprache zui lernen.

Handbuch der Javaprogrammierung
Super zum Nachschlagen, aber nicht geeignet um sich Java beizubringen.

Java Almanac
Unersetzbar um schnell die häufigsten Code Schnipsel parat zuhaben.
Aufgabenorientiert sortiert.

Alle Links sollten auch irgendwo als Download verfügbar sein. Oder einfach einen OfflineReader wir HTTrack darauf ansetzen.

Viel Spaß bei Programmieren! 💡

Firehawk

Birnenmueller

(Themenstarter)

Anmeldungsdatum:
27. September 2005

Beiträge: 24

Wohnort: Stadt im Rhein-Neckar-Delta

Die Webseiten von SUN sind vollgestopft mit Anleitungen.
Von den angesprochenen Büchern habe ich schon gehört, oder mir das ein oder andere eBook besorgt.

Den almanac kannte ich auch noch nicht. Schaut aber wirklich hilfreich aus!

Aber HTTrack interessiert mich nun wirklich... Ich schau gleich mal in apt nach, ob der verfügbar ist...

Vielen Dank!

sprx

Avatar von sprx

Anmeldungsdatum:
29. September 2005

Beiträge: 16

Wohnort: Berlin

Den classpath brauchst du auch nur wenn du klassen benutzt die nich in dem aktuellen verzeichnis liegen.
in deinem kleinen script benötigst du keine weiteren ..
dabei sei angemerkt, dass zum classpath auch das aktuelle verzeichnis in dem du java ausführst gehört, das java aber auch automatisch miteinbinded

desweiteren kannst du den classpath auch beim java aufruf mitübergeben

java -classpath /your/classpath Klasse

mfg

T0m

Anmeldungsdatum:
26. August 2005

Beiträge: 223

Wohnort: MA

Hallo !

Im Classpath muß noch das aktuelle Verzeichnis, also "." sein.
So ist es zumindest unter Windows und sicherlich genauso auch unter Linux.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Ist es nicht.

Ich arbeite Tag und Nacht mit Java unter Linux, und habe gar keinen CLASSPATH.

sprx

Avatar von sprx

Anmeldungsdatum:
29. September 2005

Beiträge: 16

Wohnort: Berlin

Jo normaler weise muss man den . gar nich angeben und wenn der classpath richtig im system eingerichtet ist auch sonst keine, es sei denn man verwendet packete/module (einzelne klassen oder jar's) die nich im classpath liegen, dann muss man den natürlich miteinbinden.

Jedoch kann es schon mal vorkommen, besonders unter windows, das der classpath komplett hingehunzt ist, dann kann unter umständen manchmal schon ein classpath . helfen ☺ aber das is nicht die regel

Antworten |