tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
14821
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Loki2 Loki2 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    157
    Hallo

    Ich habe ein ganz konfuses Problem welches ich absolut nicht verstehe, ich hoffe ihr könnt mir weiterhelfen.

    Mein Programm erstellt an einer Stelle eine Datei im Ordner "bin/xml/gui.xml"

    Diese Datei wird auch sauber erstellt. An einer anderen Stelle wird die Datei folgendermaßen wieder eingelesen:

    Code :
    1
    2
    
    (new SwingEngine(this)).render(this.getClass().getClassLoader()
                      .getResource(FILE_NAME));

    Damit es aus Eclipse funktioniert muss

    Code :
    1
    
    String FILE_NAME = "xml/gui.xml";
    sein. Also ohne die Angabe von "bin/" Das begreif ich schon mal nicht.Warum muss beim Filewriter das "bin" mit angegeben werden und beim Classloader nicht

    Code :
    1
    
    FileWriter resultXML = new FileWriter("bin/xml/gui.xml");
    Wenn ich dann ein JAR File davon baue funktioniert es gar nicht mehr. Also die Datei wird immer noch korrekt angelegt aber der Classloader kann die Ressource nicht einlesen. Wieso nicht

    Ich hoffe ich konnte mein Problem halbwegs verständlich erklären und ihr könnt mir weiterhelfen denn damit komme ich gar nicht mehr weiter

    Gruß und so
    Loki2
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Die getResource(...) Methode eines ClassLoaders sucht standardmäßig im Classpath der Java Anwendung. Unter Eclipse ist das bin Verzeichnis Classpath...
    Der FileWriter hingegen sucht (wenn ein relativer Pfad angegeben wurde) abhängig vom Root Verzeichnis der Anwendung.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Loki2 Loki2 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    157
    Nabend und Danke für die Antwort.

    Allerdings weiss ich jetzt nicht wie ich das Problem beheben kann?

    Ich lese auf die Art und Weise eine XML Datei für SwiXml ein aus dem eine GUI erstellt wird.
    Gibt es eine andere Möglichkeit damit auch der Classloader aus dem Root der Anwendung liest? Irgendwie muss ich SwiXml halt dieses Gui.xml File geben...



    Gruß und so
    Loki2
     

  4. #4
    Loki2 Loki2 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    157
    Hallo,

    ok ich habe die Lösung gefunden. Ich lese das File jetzt folgendermaßen ein:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    swix = new SwingEngine(this);
        try {
            swix.render(new File(UI_DEF_FILE_NAME));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    Gruß und so
    Loki2
     

Ähnliche Themen

  1. getResource und Ordner
    Von SPiKEe im Forum Java
    Antworten: 2
    Letzter Beitrag: 03.04.10, 10:45
  2. getResource gibt null zurück
    Von Romsl im Forum Java
    Antworten: 4
    Letzter Beitrag: 30.03.08, 16:08
  3. class.getResource findet Datei nicht
    Von DarthShader im Forum Java
    Antworten: 7
    Letzter Beitrag: 16.04.07, 16:14
  4. Maven - getResource(?)
    Von flashray im Forum Java
    Antworten: 1
    Letzter Beitrag: 11.03.07, 01:43
  5. Antworten: 2
    Letzter Beitrag: 16.01.07, 10:09