ubuntuusers.de

Wie setzt man den Classpath in Java?

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

Muugen

Anmeldungsdatum:
24. Januar 2015

Beiträge: Zähle...

Hey, Bin absoluter Anfänger und bekomms einfach nicht auf die Reihe nen CLASSPATH zu setzen.... Hab prog1tools.zip abgespeichert in:

/home/anon/java/other

Aber dann fängt es schon an, ich schaffs nichtmal dass der CLASSPATH gesetzt wird, völlig egal was ich im Terminal eingebe....

anon@anon:~$ /java/other/prog1tools.zip:$CLASSPATH; 
bash: /java/other/prog1tools.zip:: Datei oder Verzeichnis nicht gefunden

Und das war mein vielversprechensder Versuch :O Hab echt schon alles möglich ausprobiert ☹ export oder echo CLASSPATH usw brauch ich ja nichtmal zu teste, dass da nix kommt ist klar Wäre euch echt für jede Hilfe dankbar!

Moderiert von rklm:

Abgetrennt von diesem alten Thema. Bitte keine Leichen fleddern!

Moderiert von rklm:

... und zusammen geführt mit der Doublette. Bitte nutzt in solchen Fällen die "Melden"-Funktion.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17607

Wohnort: Berlin

Neue Frage, neuer Thread.

Sich hier ranhängen führt nur zur Verwirrung.

Muugen schrieb:

anon@anon:~$ /java/other/prog1tools.zip:$CLASSPATH; 
bash: /java/other/prog1tools.zip:: Datei oder Verzeichnis nicht gefunden
1
CLASSPATH=/java/other/prog1tools.zip:$CLASSPATH

ist das richtige Vorgehen. Einer Variablen (CLASSPATH) wird mit =... etwas zugewiesen.

prog1tools.zip ist aber ein ungewöhnlicher Classpath. Zwar sind jar-Dateien auch gültige Ziparchive, aber enthalten üblicherweise noch Zusatzinformationen. Kann es sein dass Du diese prog1tools erst noch auspacken musst? Was ist da drin?

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

user unknown schrieb:

Neue Frage, neuer Thread.

Sich hier ranhängen führt nur zur Verwirrung.

Muugen schrieb:

anon@anon:~$ /java/other/prog1tools.zip:$CLASSPATH; 
bash: /java/other/prog1tools.zip:: Datei oder Verzeichnis nicht gefunden
1
CLASSPATH=/java/other/prog1tools.zip:$CLASSPATH

ist das richtige Vorgehen. Einer Variablen (CLASSPATH) wird mit =... etwas zugewiesen.

prog1tools.zip ist aber ein ungewöhnlicher Classpath. Zwar sind jar-Dateien auch gültige Ziparchive, aber enthalten üblicherweise noch Zusatzinformationen. Kann es sein dass Du diese prog1tools erst noch auspacken musst? Was ist da drin?

Hier der neue Thread ☺

Prog1Tools dienst dazu zb ne Zahl einzelesen, also bei nem Programm, das Zinseszins ausrechnet, kann man den zu verziensenden Beträg eingeben. Ich hab mich an folgende Anleitung gehalten und das Paket unentpackt in das angegebene Verzeichnis gepackt. http://www.grundkurs-java.de/software/Prog1Tools/IOToolsInstallHilfe.html

Hab jetzt

CLASSPATH=/java/other/prog1tools.zip:$CLASSPATH

ausprobiert, aber da passiert einfach gar nichts ☹ Hab mal was von ner bashrc gelesen, kanns an dem liegen?

lg Muugen

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Edit: Selbst mal reingeschaut, ist tätsächlich nicht zu entpacken. Naja, der Kurs sieht mich generell etwas krude an..

Btw. du hast dich an die Anleitung gehalten? Sieht nicht danach aus, denn dan würdest du das export nicht vergessen ^^

CLASSPATH=/java/other/prog1tools.zip:$CLASSPATH
export CLASSPATH 

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

Das Buch und der Kurs sind an sich echt nicht schlecht und mit Windows war auch alles machbar, aber bei Ubuntu streikt es leider. Hab das

export CLASSPATH

natürlich auch versucht, aber da beim setzen des CLASSPATH schon rein gar nichts passiert, hielt ich es für unrelevant.

echo CLASSPATH

Hab ich übrigens auch gecheckt, gibt mir nur "CLASSPATH" zurück.

trotzdem danke! ☺

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Nur ein export alleine geht ja auch nicht. Du musst es schon wie gesagt zuerst setzen und dann den export. Dann kannst du in der selben Terminalsitzung dein Programm starten.

1
2
CLASSPATH=/java/other/prog1tools.zip:$CLASSPATH
export CLASSPATH

Das echo gibt natürlich nur CLASSPATH aus, weil du nur CLASSPATH hingeschrieben hast und nicht die Variable. Diese benötigt, wie beim setzen das $-Zeichen. So werden Variablen referenziert.

1
echo $CLASSPATH

Dann wären noch die zwei Punkte. Liegt die Datei wirklich unter /java/other, also wirklich im Wurzelverzeichnich, oder ist dieser java Ordner in deinen Homeverzeichnis? Und wie startest du dein Programm? Dann irgendwo anders, oder schon in der Shell in der du den Classpath setzt?

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

ah ok, wieder was ☺ Habs jetzt mit folgendem versucht

CLASSPATH=.:~/java/other/prog1tools.zip:$CLASSPATH; 
export $CLASSPATH

Die .zip datei liegt nat. auf Home, hab nur sicherheitshalber alles mögliche versucht, auch ohne Home... bin echt verzweifelt :O

also, Ergebnis ist:

anon@anon-anon:~$ CLASSPATH=.:~/java/other/prog1tools.zip:$CLASSPATH; anon@anon-SATELLITE-L850:~$ 
export $CLASSPATH
bash: export: `.:/home/anon/java/other/prog1tools.zip:.:/home/anon/java/other/prog1tools.zip:.:/home/anon/java/other/Prog1Tools.zip:': Ist kein gültiger Bezeichner.

Naja so richtig starten will ichs nicht, ich geb im Editor dann einfach den Import-Befehl und dann compilier ich mit javac und führe mit java im terminal aus? 😀 zumindest hab ichs so in Windows gemacht...

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

beim export darf kein $ hin. halt dich doch an das was gescheieben wird..

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

Beim export ohne $ kommt einfach wieder gar nicht... Ich mach schon das was geschrieben wird, aber da passiert einfach null und dann probier ich halt bisschen rum bis sich wenigstens irgendwas im Terminal bewegt

//EDit: sryyyyyyy 😀 Hat sich doch was getan, hab grad echo gecheckt und jetzt kommt auch das gewünschte verzeichnis!

anon@anon-anon:~$ echo $CLASSPATH
.:/home/anon/java/other/prog1tools.zip:

Soweit sogut, allerdings kann ich noch nichts mit javac wie gewohnt compilieren... Ganz normal

javac Zins.java

eingegeben

Zins.java:1: error: package prog1tools does not exist
import static prog1tools.IOTools.*;
                        ^

wo liegt jetzt der Fehler?

Danke nochmal für die Hilfe @ theDarkRose

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Führst du den javac Aufruf im selben Terminal wie den export aus?

EDIT: Habe mir mal den Source angeschaut. Das Package muss Prog1Tools heißen, nicht prog1tools. Unter Linux ist Groß-/Kleinschreibung sehr relevant.

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

anon@anon-anon:~$ CLASSPATH=.:~/java/other/prog1tools.zip:$CLASSPATH; 

anon@anon-SATELLITE-L850:~$ export CLASSPATH

anon@anon-anon:~$ echo $CLASSPATH

.:/home/anon/java/other/prog1tools.zip:

anon@anon-anon:~$ cd Work/MeinJava

anon@anon-anon:~/Work/MeinJava$ javac Zins.java

Zins.java:1: error: package prog1tools does not exist

import static prog1tools.IOTools.*;
                        ^

Habs genau so gemacht... Hab die Großbuchstaben bei der .zip datei geändert, weil ja packete immer klein geschrieben werden, stand in nem anderen thread zu dem thema... Also ist bei der .zip datei, sowie bei dem import Befehl, wie auch beim CLASSPATH alles klein, oder soll ich nochmal von vorn und den ursprünglichen Namen beibehalten?

Wenn ich im Verzeichnis der .java Datei das echo kommando eingebe kommt:

anon@anon-anon:~/Work/MeinJava$ echo $CLASSPATH
.:/home/anon/java/other/prog1tools.zip:.:/home/anon/java/other/prog1tools.zip:
anon@anon-anon:~/Work/MeinJava$ 

keine Ahnung warum es doppelt kommt?!

Vielen Dank für deine Zeit! ☺

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Man schreibt eigentlich Packagenamen klein, aber die haben es eben falsch gemacht. Der Import in deinen Sourcedateien muss eben groß geschrieben werden. Das sagte ich vorhin.

1
import static Prog1Tools.IOTools.*;

Edit: und ja, die zip-Datei solltest du nicht intern bearbeiten.

Muugen

(Themenstarter)

Anmeldungsdatum:
24. Januar 2015

Beiträge: 7

Hab alles komplett von vorne gemacht und siehe da, es lässt sich compilieren 😀 Vielen vielen Dank @TheDarkRose! 😀

Leider ist nat. sofort das nächste Problem aufgetaucht:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Zins : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

Meine Vermutung: Hab zu viel in Synaptics rumgespielt und da was verbockt! Plan: Java komplett runter, also alles was in Synaptics angezeigt wird bei Java und nochmal von vorne mit:

1. sudo add-apt-repository ppa:webupd8team/java
2. sudo apt-get update
3. sudo apt-get install oracle-java8-installer
4. sudo apt-get install oracle-java8-set-default
5. sudo dpkg --list | grep -i jdk //checken obs geklappt hat

Kann man das so machen? ☺

//Edit: Kann geschlossen werden, Problem gelöst! Lag am JDK. Nochmals vielen vielen Dank an TheDarkRose für die Geduld mit mir 😀 😀

Antworten |