abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 17:11 | IT novinky

    Společnost Red Hat slaví 30 let.

    Ladislav Hagara | Komentářů: 1
    dnes 15:22 | IT novinky

    Ve věku 91 let zemřel izraelský informatik Ja'akov Ziv, spolutvůrce bezztrátových kompresních algoritmů LZ77, LZ78 a LZW (Lempel–Ziv–Welch).

    Ladislav Hagara | Komentářů: 0
    dnes 11:00 | IT novinky

    Byla představena nová Arduino deska Arduino UNO R4 s 32bitovým MCU RA4M1 (Arm Cortex-M4). Desku lze zatím získat pouze v rámci early access programu.

    Ladislav Hagara | Komentářů: 0
    včera 18:33 | Nová verze

    Operační systém MidnightBSD, fork FreeBSD optimalizovaný pro desktop s prostředím Xfce, byl vydán ve verzi 3.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 6
    včera 18:22 | IT novinky

    Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Neurodeck: Psychological Deckbuilder (ProtonDB).

    Ladislav Hagara | Komentářů: 0
    25.3. 12:33 | Komunita

    Alex Ellis upozornil 15. března, že firma Docker se chystala zrušit bezplatný hosting open-source projektů na Docker Hubu. Po vlně odporu se představitelé firmy omluvili a posléze byl původní záměr odvolán.

    Fluttershy, yay! | Komentářů: 29
    25.3. 07:00 | IT novinky

    Ve věku 94 let zemřel Gordon Moore, mj. spoluzakladatel společnosti Intel a autor Moorova zákona.

    Ladislav Hagara | Komentářů: 1
    24.3. 17:11 | Nová verze

    Mercurial (Wikipedie), software pro SCM (Source Code Management), byl vydán ve verzi 6.4. Přehled novinek v poznámkách k vydání. Ve dnech 5. až 7. dubna proběhne konference Mercurial Paris.

    Ladislav Hagara | Komentářů: 0
    24.3. 11:55 | IT novinky

    Byly rozdány Ceny Velkého bratra (Big Brother Awards) za rok 2022 pro největší slídily pořádané nevládní organizací Iuridicum Remedium. Dlouhodobý slídil: Microsoft. Firemní slídil: Seznam. Úřední slídil: Nejvyšší správní soud. Výrok Velkého bratra: Marian Jurečka. Pozitivní cena: NoLog.

    Ladislav Hagara | Komentářů: 11
    24.3. 11:11 | Zajímavý projekt

    Byla představena online vzdělávací platforma Ada Computer Science pro učitele, studenty a kohokoli, kdo se zajímá o informatiku. Stojí za ní Raspberry Pi Foundation a Univerzita v Cambridgi.

    Ladislav Hagara | Komentářů: 0
    Používáte WSL (Windows Subsystem for Linux)?
     (74%)
     (12%)
     (4%)
     (11%)
    Celkem 336 hlasů
     Komentářů: 4, poslední 24.3. 06:42
    Rozcestník


    Dotaz: Netbeans projekt a relativni cesta k souboru

    23.7.2009 11:07 FITak
    Netbeans projekt a relativni cesta k souboru
    Přečteno: 1028×

    Dobry den, programuji projekt v Netbeans a zasekl jsem se na zdanlive malickosti. V programu pracuji s XML soubory a mam tedy tridu pro jejich nacitani a pro jejich dalsi zpracovani.

    Jeste pred vysvetlenim problemu sem hodim strom projektu:

    $ tree -d
    .
    |-- build
    |   |-- classes
    |   |   `-- program
    |   |       |-- data
    |   |       |-- images
    |   |       `-- xml
    |   `-- empty
    |-- nbproject
    |   `-- private
    |-- src
    |   `-- program
    |       |-- data
    |       |-- images
    |       `-- xml
    `-- test
    

    Co jsem se dival do automaticky generovaneho kodu obrazky ze slozky images se nacitaji takto:

    jLabelSTARTER.setIcon(new javax.swing.ImageIcon(getClass().getResource("/program/images/start.PNG")));

    Z toho jsem logicky usoudil, ze kontruktor me tridy pro praci s XML budu volat takto:

    XMLworker xmlDoc = new XMLworker("/program/data/score.xml", "scoreboard");
    

    Soubor score.xml ve slozce data SKUTECNE existuje, presvedcoval jsem se o tom snad 100x.

    Vzdy vsak dostanu chybu

    program.xml.XMLworkerException: Cannot load document: java.io.FileNotFoundException: /program/data/score.xml (No such file or directory)
    ...
    

    Zkousel jsem tu cestu k souboru ruzne upravoval, ale bezvysledne

    Pkud by vas nahodou zajimal i ten vlastni konstruktor:

    public XMLworker(String uri, String topElement) throws XMLworkerException
        {
            try
            {
                DocumentBuilder builder=DocumentBuilderFactory.newInstance().newDocumentBuilder();
                doc = builder.parse(uri);
            }
            catch (java.lang.Exception e)
            {
                throw new XMLworkerException("Cannot load document: "+e.toString());
            }
            checkDocumentStructure();
            test();
        }
    

    Odpovědi

    msk avatar 23.7.2009 11:29 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru
    Tiez som s tym bojoval a dopracoval som sa len nejakeho medzivysledku a dalej som to neskumal. Vysledok je ten, ze pokial mam package "foo.faa" a v nom class-u "Foo" a nejaky subor, dajme tomu "data.txt", tak ho ziskam pomocu:

    Foo().class.getResourceAsStream("data.txt");

    Podmienkou je, aby data.txt a Foo.java boli v jednej package.

    Tym nechcem tvrdit, ze to inak nejde, ale mne to takto staci a dalej to neriesim.
    23.7.2009 11:45 FITak
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru

    To reseni mi prijde trochu "pres ruku", ale budiz, s tim bych se smiril. Problem vsak je, ze v adresari data, kde je umisten soubor score.xml neni zadna trida...

    23.7.2009 13:18 FITak
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru

    Nevi prosim nekdo? Opravdu nutne bych to potreboval vyresit. Myslim, ze NetBeans je natolik rozsirene IDE, ze hodne lidi s necim podobnym muselo setkat...

    23.7.2009 13:39 jirka
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru
    vsimnul jste si rozdilu ve volani funkce getClass().getResource(string)? Parametrem teto funkce je cesta ktera se hleda v CLASSPATH, zatimco kdyz zavolate 
    builder.parse(string) - tak se string povazuje za URI!! /nekde/neco je u me klasicka cesta v rootu.
    spravne by melo byt neco jako:
    jar:file:/.../foo.jar!/program/data/score.xml
    tedy to co dostanete kdyz zavolate
    getClass().getResource("/program/data/score.xml").toURI a to predate jako parametr, 
    a nebo:
    misto 
    doc = builder.parse(uri);
    volat
    doc = builder.parse(getClass().getResourceAsStream(uri));
    
    
    

    snad jsem se vyjadril dost jasne :)

    23.7.2009 13:58 FITak
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru

    Aha, dekuji, tuhle cast kodu jsem zkopiroval odsud (serial o XML na linuxsoft):

    http://www.linuxsoft.cz/img/xml03/src/PhoneBookTableModel.java.html

    tak jsem tomu veril...

    23.7.2009 15:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Netbeans projekt a relativni cesta k souboru
    S NetBeans to nemá nic společného, je to čistě Java. První případ (načítání ikony) načítá soubor z resources, tedy spolu se zkompilovanými třídami Javy (v souboru JAR, pokud vytvoříte z aplikace balíček). Jak to funguje se dočtete v dokumentaci u metody java.lang.Class.getResource(), případně obdobná metoda u třídy ClassLoader.

    V druhém případě se předává cesta k souboru na disku, dokumentaci hledejte u java.io.File.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.