seamonkey: relativer Pfad

Hi,
Ich habe folgendes Problem:
Meine Applikation hat ein paar Buttons auf denen imageIcons sind.
Image Icons werden aber nur mit der kompletten Pfadangabe geladen.
Das ist aber unbrauchbar, weil sich der pfad ja ändern könnte.
Die Icons liegen in einem Verzeichniss innerhalb meines Classdateienverzeichnisses, etwa so : j:\classes\icons\

kann ich irgendwie den Pfad zu den Classdateien zur Laufzeit finden und dann darüber auf die Icons kommen???
Bin für jede Antwort dankbar!

BTW.:
System.getProperties("user.dir");
ist auch unbrauchbar!

  1. Moin,
    dies hier gibt dir den kompletten Pfad zu deinen Class Files unabhaengig
    vom System aus:

    URL url = new URL(
       "file:"+
       System.getProperty("user.dir")+
       System.getProperty("file.separator")+
       "z.B. index.html"
     );

    Gruss
    Ralf

    1. Hallo Ralf,

      URL url = new URL(
         "file:"+
         System.getProperty("user.dir")+
         System.getProperty("file.separator")+
         "z.B. index.html"
      );

      In user.dir steht idR das Verzeichnis, von dem aus die VM aufgerufen wurde. Das zu benutzen ist also nicht sinnvoll und normalerweise wird das sowieso verwendet, um relative Pfadangaben aufzulösen.

      Um beliebige Dateien im Classpath zu laden, gibt es zwei Möglichkeiten. Wenn man weiß, dass die Dateien im selben Package liegen, wie eine bestimmte Klasse, kann man die getResource() bzw die getResourceAsStream() Methode der entsprechenden Instanz von java.lang.Class verwenden.
      Wenn man die Dateien im gesamten Classpath suchen will, kann man die Methode java.lang.ClassLoader.getSystemResource() verwenden.

      Grüße

      Daniel