classpath.xml

Denna kod är public domain. Om ni hittar fel eller vill ändra något i koden blir jag jätteglad om ni skickar dessa ändringar till jesper [at] fantasi [punkt] se.


<?xml version="1.0"?>
<article category="software" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="article.xsd">
  <keyword>CLASSPATH</keyword>
  <topic>Classpath</topic>
  <ingress>
    För att en javakompilator ska hitta olika klasser och paket som
    ett javaprogram använder letar den i lite olika kataloger på
    hårddisken.  Om man vill att kompilatorn ska hitta paket och
    klasser som ligger utanför de vanliga kataloger där den normalt
    letar måste man tala om var de ligger. Detta gör man antingen med
    miljövariabeln <code>CLASSPATH</code> eller med flaggan
    <code>-classpath</code> (<code>-cp</code>).
  </ingress>

  <text>
    Detta exempel kommer från Unix-världen. Här har vi en egen
    javakatalog i hemkatalogen: <code>$HOME/javaklasser/</code> I
    Windows skulle det se ut på ungefär samma sätt men sökvägarna ser
    lite annorlunda ut där.
  </text>

  <codebox title="Med kompilatorflagga">
    javac -classpath $HOME/javaklasser fil.java
    java -classpath $HOME/javaklasser fil
  </codebox>

  <codebox title="Med miljövariabel">
    CLASSPATH=$HOME/javaklasser
    javac fil.java
    java fil
  </codebox>

  <text topic="OBS">
    Man sätter bara variabeln i det shell där man skriver
    raden ovan.  För att permanent addera denna sökväg kan man lägga
    till följande rad i lämplig fil, till exempel <code>.bashrc</code>
    om man använder <code>bash</code>.
  </text>

  <codebox>
    export CLASSPATH=$HOME/javaklasser
  </codebox>

  <text>
    Om man har paket i jar-filer måste man ange hela sökvägen med
    filnamn för att paketet ska hittas.
  </text>

  <codebox>
    javac -classpath $HOME/javaklasser/paket.jar fil.java
    java -classpath $HOME/javaklasser/paket.jar fil
  </codebox>

</article>