• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

.Class Dateien

iMB

Jonagold
Registriert
05.08.08
Beiträge
21
Servus zusammen,

ich hoffe ich bin hier im richtigen Themenbereich.

Ich habe ein Problem (welch Wunder, am dritten Tag). Und zwar hab ich hier ein class Datei die ich gern ausführen möchte. Das haut aber nicht hin.

Hab schon was gelesen, dass das irgendwie übers Terminal gehen soll, Java -Class eingeben soll und dann die Datei dort reinlegen und Enter drücken und dann soll es funktionieren. Tut`s aber nicht.

Ich bin verzweifelt. Bitte helft mir.

Danke schon mal im voraus.
 

YanniH

Auralia
Registriert
20.04.08
Beiträge
202
Normalerweise sollte es so gehen

Code:
java Dateiname (ohne .class-Endung)

Ansonsten bitte die Ausgabe aus dem Terminal, was als Fehlermeldung ausgegeben wird.
 

iMB

Jonagold
Registriert
05.08.08
Beiträge
21
Exception in thread "main" java.lang.NoClassDefFoundError:

dahinter steht dann noch der name
 

YanniH

Auralia
Registriert
20.04.08
Beiträge
202
Führst du den java-befehl in demselben Pfad aus wie die Class-Datei?
 

derspacy

Gala
Registriert
19.07.08
Beiträge
50
Die .class-Dateien sind die kompililierten Java-Klassen, die denn Java-Byte-Code enthalten, d.h. jede Klasse besitzt eine eigene .class-File.
Also meiner Vermutung nach fehlen Dir entweder die anderen binären Klassen (falls es noch andere gibt) oder du führst das Java Programm von einem anderen Pfad aus aus, so dass die anderen Klassen nicht gefunden werden.
Also immer erst mit "cd" in das directory der .class-Files wechseln und dann "java xxx" ausführen - und z.B. nicht folgendes machen: "java /Users/xxx/Deskop/xxx".
Falls Dir evtl. andere .class-Files fehlen und du Zugriff auf den Sourcecode hast, kannst du sie einfach mit "javac xxx.java" kompilieren. Die Abhängigkeiten werden automatisch mitkompiliert.

Eine andere Möglichkeit ist, dass das Programm Zugriff auf andere binäre Bibliotheken braucht und du den Pfad dieser externen Bibliotheken in die Umgebungsvariable $CLASSPATH hinzufügen musst - ohne genau Fehlermeldung aber reine Spekulation.

Was ist es denn genau für ein Programm? Was selbt-geschriebenes? Wie lautet die genaue Fehlerausgabe?

Gruß, spacy
 

iMB

Jonagold
Registriert
05.08.08
Beiträge
21
äh, sorry aber ich hab davon keine ahnung. ich hab das terminal geöffnet und dann gleich "java programmname" (natürlich ohne "")

muss ich das anders machen?
 

derspacy

Gala
Registriert
19.07.08
Beiträge
50
Stelle sicher, dass du vorher in den richtigen Ordner wechselst. Einfach mit "cd" zum Ordner, wo die .class-Files liegen navigieren - dafür kannst du auch die komfortable "Tab-Completion" nutzen. In der Bash vor dem Prompt wird der Pfad auch angezeigt.

Also, folgendes geht dann nicht - wenn man bspw. davon ausgeht, dass sich "Wurst.class" unter /Applications befindet:
Code:
foobook:~ spacy$ java Wurst
Exception in thread "main" java.lang.NoClassDefFoundError: Wurst
(~ steht dabei für dein Home-Verzeichnis)

Richtig:
Code:
foobook:~ spacy$ cd /Applications
foobook:Applications spacy$ java Wurst
Achja: Häufig sind die ganzen .class-Files (= das gesamte Java-Programm) in einer JAR-File gepackt, was im Prinzip nur eine Zip-File mit zusätzlichen Meta-Informationen ist (z.B. welche Methode welcher Klasse zum Starten benutzt werden soll). So ist das ganze etwas übersichtlicher.
Eine Jar-File startest du z.B. mit "java -jar Wurst.jar". Oder einfach Doppelklick im Finder ;)
 

iMB

Jonagold
Registriert
05.08.08
Beiträge
21
Danke nochmal für eure Antworten. Ich hab mir jetzt anders beholfen, werd das aber nochmal probieren wie derspacy das gesagt hat.

So long