Installation IOTools

P

Philipp1905

Aktives Mitglied
Thread Starter
Dabei seit
06.06.2007
Beiträge
115
Reaktionspunkte
3
Hallo,
hab ein Problem mit den JAVA IOTools (verwendet u.a. im Anfängerbuch "Programmieren in Java Band 1" - Uni Karlsruhe). Und zwar hänge ich bei der Installation.

In der Dokumentation wird gesagt, man soll folgendes tun:

"Editieren Sie die Datei ~/.profile und tragen Sie dort ein:
CLASSPATH=.:~/java/other/Prog1Tools.zip:$CLASSPATH;
export CLASSPATH
Anmerkung: Wenn Sie als Shell die C-Shell (csh oder tcsh) verwenden, müssen in die Datei ~/.cshrc die Zeilen
set CLASSPATH = ( $CLASSPATH . )
set CLASSPATH = ( $CLASSPATH ~/java/other/Prog1Tools.zip )
eingefügt werden."

Ich finde keine solche profile Datei. Ein anderer Thread aus diesem Forum konnte mir auch nicht wirklich weiterhelfen (https://www.macuser.de/threads/grundkurs-programmieren-in-java-einlesen-problem-mit-iotools.191862/. Verwende ich IOTools ohne diesen Arbeitsschritt, kann ich es zwar aufrufen, erhalte unter TextMate jedoch folgende Fehlermeldung.

"Dateiende erreicht.
Programm abgebrochen...

Exception in thread "main" java.lang.NullPointerException
at java.util.StringTokenizer.(StringTokenizer.java:182)
at java.util.StringTokenizer.(StringTokenizer.java:219)
at Prog1Tools.IOTools.init(IOTools.java:55)
at Prog1Tools.IOTools.readInteger(IOTools.java:98)
at Prog1Tools.IOTools.readInteger(IOTools.java:233)
at IOToolsTestMitStaticImport.main(IOToolsTestMitStaticImport.java:11)

Program exited with status 1.
"

Kann mir jemand helfen,
vielen Dank.
Gruß
Philipp
 
Phillip schrieb:
Ich finde keine solche profile Datei.

/etc/profile ist die Systemweite Datei sie wird für alle user ausgeführt! Im Home Verzeichnis kann dann eine .profile liegen die beim login für nur genau diesen user zusätzlich ausgeführt wird. Wie gesagt sie kann da sein, muß es aber nicht! Du kannst also, wenn Du keine vorfindest, straffrei selbst eine erstellen! Beim Login oder beim Start einer Konsole wird die Datei dann automatisch mit ausgeführt!
 
Es muss keine solche Datei geben ~/.profile setzt vorraus, das der User die bash Shell verwendet. Neben der csh gibt es auch noch zsh und andere, da sind es dann wieder andere Dateien.

Wie dem auch sei, wenn Du bash verwendest, dann mach einfach

pico ~/.profile

Die Datei wird erstellt, wenn sie noch nicht da ist

Dann starte Terminal neu, und gib mal

echo $CLASSPATH

ein. Dann sollte etwas ausgegeben werden.
 
Ähm sorry, aber ich bin Mac und damit auch UNIX Neuling und hab mit der Console wenig zu tun, könnte ihr das vielleicht in kurzen Schritten verständlich erklären. Sorry, aber schonmal danke für eure Hilfe! :)
 
1) Terminal app aufmachen
2) Zur Kontrolle
Code:
echo $0
eingeben und return drücken
3) Ergebnis sollte sein, dass "bash" ausgegeben wird
4) Eingeben (mit den ") und return drücken:
Code:
echo "CLASSPATH=.:~/java/other/Prog1Tools.zip:$CLASSPATH;" >> ~/.profile
4) Zur Kontrolle:
Code:
cat ~/.profile
5) Terminal.app beenden, neu starten
6) Zur Kontrolle,
Code:
echo $CLASSPATH
eingeben (return).
7) Die Ausgabe sollte mit ":~/java/other/Prog1Tools.zip ... blah blah" anfagen

Einfach genug?
 
Danke, das mit der Console hab ich jetzt verstanden. Nur merk ich gerad, dass es bei mir den Ordner Java/other in der "Hauptlibrary" gar nicht gibt. Sondern nur einen Ordner Extensions?!
 
Hallo! Wohin hast Du denn die Prog1Tools.zip Datei geschoben? Du kannst die Datei auch in ~/Library/Java/Extensions legen und musst dann keinen Classpath in der Shell setzen, weil die JVM automatisch in ~/Library/Java/Extensions sucht.
 
  • Gefällt mir
Reaktionen: zabhod
Ja ich habe die Datei in ~/Library/Java/Extensions geschoben.

Ich erhalte aber immer noch die Fehlermeldung von TextMate:

"Dateiende erreicht.
Programm abgebrochen...

Exception in thread "main" java.lang.NullPointerException
at java.util.StringTokenizer.(StringTokenizer.java:182)
at java.util.StringTokenizer.(StringTokenizer.java:219)
at Prog1Tools.IOTools.init(IOTools.java:55)
at Prog1Tools.IOTools.readInteger(IOTools.java:98)
at Prog1Tools.IOTools.readInteger(IOTools.java:233)
at IOToolsTestMitStaticImport.main(IOToolsTestMitStaticImport.java:11)

Program exited with status 1."
 
WAS genau machst Du denn in TextMate? Hast Du eine Klasse programmiert und führst diese jetzt aus?

Nachtrag: IOTools.readInteger liest aus System.in, sprich das Programm wartet auf eine Eingabe abgeschlossen mit einem Return. Das Programm solltest Du aus dem Terminal heraus ausführen und nicht aus TextMate.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: das_Pathos
XXX
XXX
Gruß
Philipp

EDIT: Ich habs!
VIelen Dank an alle!
 
Zuletzt bearbeitet:
Edit. ....
 
Zuletzt bearbeitet:
Zurück
Oben Unten