dahthai
Anmeldungsdatum: 14. Juli 2005
Beiträge: 101
|
Moin! Also studienbedingt möchte ich Java-Programmierung erlernen. Soweit so gut, habe JAVA auch einwandfrei über den SUN-Download installiert bekommen und "HelloWorld" klappt auch! 😉 Jedenfalls gehts mir jetzt darum, die sogenannten IOTools einzubinden, allerdings scheitere ich daran. Ich muß dazu die Variable $CLASSPATH systemweit (Bash-weit) definieren, dazu bin ich der obigen Anleitung gefolgt und habe zusätzlich noch diesegefunden, allerdings kommt jedesmal, wenn ich meinen Benutzernamen neu gestartet habe: javac Test.java Test.java:1: package Prog1Tools does not exist . Wie binde ich zusätzliche Klassen in /home/user/.bash_profile oder /home/user/.bashrc ein, daß sie $CLASSPATH bekannt sind, bzw. unter JAVA funktionieren? Ich habe es auch schon unter /root/.profile bzw. /root/.bashrc versucht + anschliessend Neustart, aber kein Erfolg. Danke für einen Tipp! dahthai
|
Mossi
Anmeldungsdatum: 6. Juli 2005
Beiträge: 382
Wohnort: Regensburg
|
steht dein CLassPath in der Ausgabe von "echo $CLASSPATH" drin? Wenn nein, poste mal deinen Eintrag in ~/.bashrc Dort sollte er eigentlich gut aufgehoben sein und müsste ungefähr so aussehen:
CLASSPATH=.:~/java/other/Prog1Tools.zip:$CLASSPATH;
export CLASSPATH Am besten schreibst du das ganz am Ende der Datei.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17621
Wohnort: Berlin
|
Alternative: Wenn Du das Paket häufiger brauchst, dann kannst Du es nach $JAVA_HOME/jre/lib/ext kopieren, und kommst ohne CLASSPATH aus. Wenn Du einen CLASSPATH hast, dann muß auch das aktuelle Verzeichnis . (so es gebraucht wird) im CLASSPATH stehen. Hat man keinen CLASSPATH, so ist das aktuelle Verzeichnis automatisch ein Ort, an dem nach .class-Files gesucht wird. Wieso die ihr Paket als zip, und nicht als jar vertreiben, würde mich aber mal interessieren. Auch besagt die Konvention, daß Pakete nur aus Kleinbuchstaben bestehen sollten (prog1tools, nicht Prog1Tools).
|
pippovic
Anmeldungsdatum: 12. November 2004
Beiträge: 9130
|
Ich darf da kurz mal das OpenBook "Java ist auch eine Insel" empfehlen, welches vor kurzem in der fünften Version erschienen ist. Gruß pippovic
|
dahthai
(Themenstarter)
Anmeldungsdatum: 14. Juli 2005
Beiträge: 101
|
Morgen! Erstmal danke für die schnellen Antworten, also vorweg, die Ausgabe von echo $CLASSPATH ist leer, also wird CLASSPATH nicht definiert sein, ich probiere gleich mal, das Packet in ~/JAVA_HOME/jre/lib/ext zu kopieren. Woran ich viell. noch gedacht habe, ist die Rechtevergebung. Ich lagere Prog1Tools.zip unter /home/user/java. Wenn ich nun in der ~/.bashrc den CLASSPATH definiere, ist es da viell. relevant welche Rechte ich an dem zip-Archiv habe, bzw. welche Rechte ich habe CLASSPATH überhaupt zu definieren, oder darf das sowieso nur Root? Greetz erstmal! dahthai
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17621
Wohnort: Berlin
|
root könnte unverbindlich einen CLASSPATH für alle definieren (in /etc/bash.bashrc) , aber jeder User könnte ihn ergänzen oder ersetzen, jeweils für sich selbst. Um Klassen aus Archiven/ Verzeichnissen zu lesen genügt es, Leserechte auf das .class-File/ das .jar- oder .zip-Archiv zu haben. Die Rechte (rwx) kann der Besitzer einer Datei ändern.
|
dahthai
(Themenstarter)
Anmeldungsdatum: 14. Juli 2005
Beiträge: 101
|
Also, ich poste erstmal meine /.bashrc: ... #IO.Tools CLASSPATH=.:~/home/dahthai/java/Prog1Tools.zip:$CLASSPATH; export CLASSPATH damit funktioniert es nicht und in der Konsole erscheint oben erwähntes "Package IO.Tools does not exist". Nun zu eurem 2.Lösungsversuch: (@user unknown) In dem Verzeichnis $JAVA_HOME/jre/lib/ext befinden sich .jar Dateien, was kopiere ich nun dorthin? Die zip-File oder die entpackten .class Files aus dem .zip-Archiv? Was muß ich dann in meinem erstellten Java-Programm schreiben? "import Prog1Tools" oder "import IOTools.class"? Dann ist mir deine Erklärung mit dem "...muß auch das aktuelle Verzeichnis . (so es gebraucht wird) im CLASSPATH stehen. " auch noch nicht ganz klar, kannst du darauf nochmal kurz genauer eingehen? Greetz und ich probiere alles soweit aus, wenn ich wieder daheim bin! dahthai
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17621
Wohnort: Berlin
|
dahthai hat geschrieben:
CLASSPATH=.:~/home/dahthai/java/Prog1Tools.zip:$CLASSPATH; export CLASSPATH
sehr schön. dahthai hat geschrieben:
In dem Verzeichnis $JAVA_HOME/jre/lib/ext befinden sich .jar Dateien, was kopiere ich nun dorthin?
Zips oder Jars - heute also zip. dahthai hat geschrieben: Was muß ich dann in meinem erstellten Java-Programm schreiben? "import Prog1Tools" oder "import IOTools.class"?
Weder noch, sondern wenn dann:
import Prog1Tools.*;
// oder
import Prog1Tools.IOTools; dahthai hat geschrieben: Dann ist mir deine Erklärung mit dem "...muß auch das aktuelle Verzeichnis . (so es gebraucht wird) im CLASSPATH stehen. " auch noch nicht ganz klar, kannst du darauf nochmal kurz genauer eingehen? Greetz und ich probieren alles soweit aus, wenn ich wieder daheim bin! dahthai
Welcher Greetz? Wo kommt der jetzt her? Ein Kollege, Freund? Gerade bei kleinen Sachen - z.B. Progrämmchen, die nur aus einer Datei bestehen, möchte man sich nicht gerne mit CLASSPATH rumschlagen, sondern kurz und knapp edit Foo.java
javac Foo.java
java Foo eintippen. Das klappt, weil das aktuelle Verzeichnis nach .class-Files durchsucht wird unter Linux. (Unter Win nicht). Wenn Du jetzt eine Lib, die nicht unter $JAVA_HOME/jre/lib/ext und nicht unter $JAVA_HOME/jre/lib/ liegt referenzierst, brauchst Du einen CP, wie ~/home/dahthai/java/Prog1Tools.zip Dann mußt Du aber auch das aktuelle Verzeichnis erwähnen: ~/home/dahthai/java/Prog1Tools.zip:.
|
dahthai
(Themenstarter)
Anmeldungsdatum: 14. Juli 2005
Beiträge: 101
|
Hehe, neenee, Greetz ist kein Kollege oder Freund sondern eine spezielle Form, um 'Grüße' zu sagen ...! Etwas unglücklich formuliert! Dank Dir, aber jetzt nochmal fix der Umkehrschluss: Wie du mir bestätigt hast, ist mein Eintrag in der /.bashrc korrekt, aber wieso zeigt mir dann javac an, daß "Package IOTools does not exist"? 😕 Aber ich bin gleich daheim und probiere alles soweit aus! So, nochmal: Greetz, dahthai
|
dahthai
(Themenstarter)
Anmeldungsdatum: 14. Juli 2005
Beiträge: 101
|
Yoh!!! Alles funktioniert bestens!!! Ich danke und werde es mal mit HelloWorld Teil2 versuchen! 🤣 Greetz, Tilo
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17621
Wohnort: Berlin
|
dahthai hat geschrieben:
...aber wieso zeigt mir dann javac an, daß "Package IOTools does not exist"?
Weil es kein Package IOTools gibt. Wenn ich es recht in Erinnerung habe, dann heißt das package Prog1Tools, und die Klasse heißt Prog1Tools.IOTools. Verwendet man import Prog1Tools.*;, dann kann man die Klasse mit Ihrem Kurznamen IOTools ansprechen. Auch wenn es klappt schadet es nicht, zu wissen, wieso.
|
WRson
Anmeldungsdatum: 16. November 2014
Beiträge: Zähle...
|
EDIT:
Habe es hinbekommen! Hallo liebe Ubuntuuser, habe mich soeben im Forum angemeldet,
weil ich das genau gleiche Problem habe,
welches in diesem Thread bereits gelöst wurde.
Leider schaffe ich es einfach nicht!
Eclipse konnte vorher einmal kurz ein Testprogramm mit den Progtools ausführen,
inzwischen geht das auch nicht mehr und die Konsole streikt bei der ausgabe sowieso. Alles was bisher gemacht wurde, ist die Prog1Tools.zip heruntergeladen, in prog1tools.zip umbenannt
und in meine /home/username/workspace verschoben. In eclipse habe ich sie zu den verwendeten jre's hinzugefügt,
meine .bashrc ist auch bereits mit der Formel
#iotools
CLASSPATH=.:~/home/fox/workspace/prog1tools.zip:$CLASSPATH;
export CLASSPATH
versehen und gibt auch in der Konsole
echo $CLASSPATH
.:/home/username/home/username/workspace/prog1tools.zip:
aus. Wieso zwei mal home und username vorkommt kann ich mir nicht erklären.
Des weiteren gibt es bei mir kein $JAVA_HOME Verzeichnis in welches ich die Progtools kopieren könnte. Hier noch die konkrete Fehlermeldung des Konsole: progtools.java:1: error: package Prog1Tools does not exist
import Prog1Tools.IOTools;
^
progtools.java:9: error: cannot find symbol
int a = IOTools.readInteger();
^
symbol: variable IOTools
location: class progtools
2 errors Ich hoffe ihr könnt mir helfen!
Danke jetzt schon
WRson Bearbeitet von rklm: Herzlich willkommen hier im Forum! Codeblöcke hinzugefügt. Bitte die Hinweise zur Syntax beachten und die Vorschaufunktion nutzen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17621
Wohnort: Berlin
|
| > progtools.java:1: error: package Prog1Tools does not exist
> import Prog1Tools.IOTools;
> ^
> progtools.java:9: error: cannot find symbol
|
Paketnamen sollen immer klein geschrieben werden. Außerdem muss die Schreibweise der des Verzeichnisnamens entsprechen - heißt das Verzeichnis denn Prog1Tools oder prog1Tools?
|