Dmitri Rettig: Was soll ich mit CLASSPATH anfangen?

Hallo,

bislange habe ich die Umgebungsvariable CLASSPATH nicht gebraucht. Jetzt will ich meine Klassen in ein package packen, aber das geht nicht so recht. Ich habe in die Autoexec.bat eingefügt:

SET CLASSPATH=C:\JAVA\CLASSES

Und jetzt?

MfG Dmitri

  1. Hallo,

    bislange habe ich die Umgebungsvariable CLASSPATH nicht gebraucht. Jetzt will ich meine Klassen in ein package packen, aber das geht nicht so recht.

    Ab JDK 1.2 sollte eigentlich keine CLASSPATH-Umgebungsvariable mehr
    notwendig sein. Zumindest nicht in der autoexec.bat
    Bei der Installation des JDK speichert das Installationsprogramm die
    Position der JRE in der Windows-Registry ab und bezieht die Pfade
    daher nicht mehr aus der CLASSPATH-Variable. Allerdings sollte das
    bin-Verzeichnis der JDK in der PATH-Variable zu finden sein. Also sowas
    wie PATH=c:\jsdk1.4\bin;[..]

    Wenn du ein Klasse geschrieben hast, die in einem Package liegt, mußt
    du die Klasse über den vollqualifizierten Namen ansprechen. Das Setzen
    des Classpaths ist nicht notwendig. Beispiel:
    java dies.ist.mein.package.Klassenname

    Wichtig ist, daß du in dem Verzeichnis bist, in dem das Verzeichnis
    "dies" als Unterverzeichnis zu finden ist. Beispiel:
    Deine Verzeichnisstruktur sieht entsprechend dem oberen Beispiel so
    aus:
    c:\daten\meineJavaKlassen\dies\ist\mein\package\ In dem Verzeichnis "package" liegt nun die Datei mit dem Namen
    "Klassenname.class".
    Du mußt dich beim Aufruf dementsprechend im Verzeichnis
    "c:\daten\meineJavaKlassen" befinden.

    Solltest du auf externe Klassen (die nicht unterhalb von
    "c:\daten\meineJavaKlassen" liegen) zugreifen wollen, so mußt du
    diese der JVM beim Aufruf von java.exe bekannt machen. Und zwar so:
    java -classpath c:\externeKlassen\andereKlasse.class dies.ist.mein.package\Klassenname
    Die Klasse wird also als Parameter hinter der Option "-classpath"
    angegeben. Willst du mehrere externe Klasse einbinden, kannst du diese
    per Semikolon trennen.

    Ich hoffe du hast das alles so einigermaßen verstanden. Wenn noch
    Unklarheiten vorhanden sein sollten, einfach nochmal nachfragen.
    Am besten beschreibst du dann aber mal, was du konkret willst.

    Gruß
    Slyh

    1. Hallo

      java -classpath c:\externeKlassen\andereKlasse.class dies.ist.mein.package\Klassenname
      Die Klasse wird also als Parameter hinter der Option "-classpath"
      angegeben. Willst du mehrere externe Klasse einbinden, kannst du diese
      per Semikolon trennen.

      Falsch. Anzugeben sind nicht die Klassen, sondern nur die Verzeichnisse oder Archive, in denen sich die Klassen bzw die Packages befinden.

      Grüße

      Daniel