Kann keine Java Klasse importieren (?)

CrazyMetal

CrazyMetal

Mitglied
Thread Starter
Dabei seit
21.12.2001
Beiträge
67
Reaktionspunkte
0
Habe ein kleines Problem mit xCode und Java.
Wir haben von der Schule eine Klasse bekommen und ich habe versucht diese in mein xCode Projekt zu importieren.
Zu erste wollte er den import Befehl nicht. Da hatte ich den Klassenpfad in den Templates im Projekt angegeben. Danach hatte ich in dem Java Browser (Macintosh HD\Developer\Applications\JavaTools) ihm die Klasse angegeben. Danach hatte er auch an dem import Befehl nix mehr zu meckern, nimmt allerdings die Befehle von der Klasse nicht an - sondern wirft mit Fehlern um sich. Ich hatte schon überlegt, ob es daran liegen könnte das die von WIN-Kisten kommen, aber eigentlich glaube ich diese Theorie auch nicht selber.

Hilfe wäre nett.

MFG,
Nico
 
Tja, ohne Fehlermeldung ist das natürlich so eine Sache.

Vielleicht irgendwelche Funktionen die es nur in Java 1.5 gibt? Bei OSX ist Standardmäßig Java 1.4.x dabei.
 
*-jalapeno-* schrieb:
Tja, ohne Fehlermeldung ist das natürlich so eine Sache.

Immer wenn ich ihm sage, dass er kompilieren und das Programm ausführen soll zeigt er mir oben in der Statusleiste an "Failed Build - 1 Error".

Der Befehl ist zum Einlesen, was Eingegeben wurde.
 
CrazyMetal schrieb:
Immer wenn ich ihm sage, dass er kompilieren und das Programm ausführen soll zeigt er mir oben in der Statusleiste an "Failed Build - 1 Error".

Der Befehl ist zum Einlesen, was Eingegeben wurde.

Das ist ja aber nicht die genau Fehlermeldung. Schau mal nach, da muss irgendwo ein Button sein wo man sich die genau Fehlermeldung anzeigen lassen kann.

Ich kann jetzt leider gerade nicht nachschauen wo du hinklicken musst.
 
*-jalapeno-* schrieb:
...da muss irgendwo ein Button sein wo man sich die genau Fehlermeldung anzeigen lassen kann.

Ich weiß was du meinst, das doofe ist das da nix steht.
Von daher einfach die generelle Frage, ob der Weg richtig war wie ich ihm die Klasse gegeben habe (Java Browser)?
 
Kannst du vielleicht genau schreiben, wo du die class-datei liegen hast und wie dein import-statement aussieht?

ß
 
Klassenpfad

Die Klasse liegt momentan bei mir auf dem Schreibtisch, der Pfad ist auch im Java Browser angegeben. Den Import mache ich mittels "import xy.huddelduddel.*;"
Hatte die Datei auch schon direkt auf die HD verschoben, seber Effekt, oder muss diese in ein bestimmtes Verzeichnis, wenn ja welches.

Nico
 
CrazyMetal schrieb:
Die Klasse liegt momentan bei mir auf dem Schreibtisch, der Pfad ist auch im Java Browser angegeben. Den Import mache ich mittels: import xy.huddelduddel.*;
hast du die *.class Datei dann auch schön brav in ein Unterverzeichnis xy/huddelduddel/* gepackt?
 
Klassenpfad

Jau, hab ich, das liegt sie drin.

Generelle Frage, ist das "Importieren" wie ich es angestellt habe denn so ok? Oder sind da Macken bei?

Noch mal zu der Klasse:
Der Pfad heißt ....../DE/LSBK/IO/tolleKlasse.class
Ich habe geschrieben: import DE.LSBK.IO.*;

Ich denke, dass das so ok ist, oder?

Nico
 
kanns sein dass der nur relative pfade akzeptiert? also relativ zum verzeichni in dem deine mainclass liegt?

edit: zum fehlerfinden hilft glaube dann window -> tools -> build results
 
Zuletzt bearbeitet:
Pfad

Ok, könnte sein.
Hat denn einer eine Idee, woher ich die Pfade bekomme?
 
wie? du musst doch wissen in welchem verzeichnis deine klassen und dein projekt liegen?
 
Sicherlich

Doch klar weiß ich das.
Ich dachte du meintest, das Verzeichnis in dem die Standart-Klassen vom System / den xCode Tools aus liegen. Weil da habe ich leider keine Ahnung wo die liegen.

Also meinst du die Klassen in das Verzeichnis von meinem Projekt mit rein legen(?).

Nico
 
ja problers mal. ich hab damit eigentlich keine erfahrung, bis jetzt hab ich einfach neue klassen einfach mit ins projekt aufgenommen, weil ich die eh immer noch weiter entwickelt hab. bei vielen klassen, mit denen man nichts weiter zu tun hat, is das natürlich blöd... schau doch mal in java foren vorbei. ich glaub java beans sind für solche zwecke auch ganz praktisch gewesen..!? :)
 
Ein Problem wech, neues da!

So das mit der Klasse habe ich jetzt in den Griff bekommen.
statt "DE.LSBK.IO.*; musste ich de.lsbk.io.*; schreiben , obwohl die Ordnernamen in Großbuchstaben da sind und der Java Compiler muss nicht auf Javac sondern auf Jikes gestellt sein.
Wobei ich auch gleich bei dern nächsten genialen Frage wäre, was ist dabei der Unterschied?

Nico
 
CrazyMetal schrieb:
So das mit der Klasse habe ich jetzt in den Griff bekommen.
statt "DE.LSBK.IO.*; musste ich de.lsbk.io.*; schreiben , obwohl die Ordnernamen in Großbuchstaben da sind

So wie deine Klasse benannt ist (Gross- oder Kleinbuchstaben oder gemischt Gross/Klein) so muss auch dein import Statement ausschauen. Sowohl Windows als auch MacOSX *) kümmern sich -- im Gegensatz zu Unix und Linux -- nicht um Gross-/Kleinschreibung.

*) du kannst unter MacOSX sehr wohl ein case-sensitives (!) HFS+ Dateisystem oder gar ein BSD UFS Dateisystem (ebenfalls case-sensitiv) anlegen -- nur macht das z.Z. noch überhaupt keinen Sinn

CrazyMetal schrieb:
und der Java Compiler muss nicht auf Javac sondern auf Jikes gestellt sein.
Wobei ich auch gleich bei dern nächsten genialen Frage wäre, was ist dabei der Unterschied?

Öh... warum funktioniert es mit "javac" nicht?
Der "jikes" ist -- wie auch "javac" und "gjc" -- ein Java Compiler. Ok, der jikes soll angeblich (= weil nicht selbst überprüft) schneller kompilieren als die Konkurrenz und soll auch schon zur Compilezeit Optimierungen am erzeugten Bytecode vornehmen... aber sonst...

Ein Quellcode der mit javac nicht kompiliert sollte auch mit jikes nicht kompilieren und umgekehrt -- ausser der Compiler hat einen Bug.
 
Graue Haare (fast)

Was javac und jikes angeht, hatte ich rum probiert und zumindest beim build keinen Fehler bekommen.
Habe zwischen zeitlich die Klasse in den Ordner getan, worin auch die xCode-Datei und die java-Datei sind. Danach den Pfad unter den Templates in den Java-Class-Path angegeben, sah auch besser aus, weil er den Pfad vom Projektordner aus angezeit hatte. Dafür bekomme ich beim Run des Applets einen Error:
"java.lang.NoClassDefFoundError: de/lsbk/io/Kbd"
Also möchte er die Klasse doch nicht finden(?).

Hier einmal der Source wie ich es geschrieben hatte:
import de.lsbk.io.*;

public class tryjava
{

public static void main (String args[])
{
System.out.print("Was eingeben: ");
double was = Kbd.readDouble ();
System.out.print("Eingegebenes Was: "+was);

}
}

Die Funktion Kdb soll einfach das aus dem Applet entnehmen, was man eingibt. Auf den Schul-Kisten geht das auch - da ich jetzt zum ersten mal mit xCode und Java (bin in APL ein bisschen fitter) in berührung komme, stehe ich ein bisschen wie ein Prophet vorm Berg.
Leider habe ich auch der Doku von Apple über xCode Tools nix entnehmen können, was Java Klassen angeht.

Nico
 
Zurück
Oben Unten