Java: Kvizova otazka

S problemem clashe mezi knihovnama se asi setkal uz kazdy. Jsou to ony vesele chvilky treba s Xercesem nebo jinym API s vice verzemi v classpath. Ano, jsou to ony ClassDefNotFoundError pripadne NoSuchMethodError. Pokud je pak classpath tvorena na vice mistech, muze nalezeni toho nespravneho jaru chvilku trvat.

A zde je otazka: Vedeli byste jak v jave zjistit cestu k jaru, z ktereho se mi dana classa naloadovala?

3 thoughts on “Java: Kvizova otazka

  1. boruvek

    No ja bych na to sel bud pres URLClassLoader, pokud by to slo, protoze ten tu informaci obsahuje.
    Druha varianta je tahle:
    Code:
    CodeSource codeSource = Test.class.getProtectionDomain().getCodeSource();
    if (codeSource != null) {
    URL url = codeSource.getLocation();
    System.out.println(“url = ” + url);
    }
    Output:
    url = file:/C:/work/cvs/rbuild/workdir/petarda_public/idoox/wasp-test/lib/junit.jar

    Ale urcite je moznosti vic, ne? 🙂

  2. boruvek

    …jako treba muze zafungovat

    URL url = Wasp.class.getResource(“”);
    System.out.println(“url = ” + url);

    output:

    url = jar:file:/C:/work/cvs/rbuild/workdir/petarda_public/idoox/wasp-test/wasp/lib/wasp.jar!/org/systinet/wasp/

    🙂

Comments are closed.