Vlákno názorů k článku Pohled pod kapotu JVM – využití knihovny SDLJava v graficky náročných aplikacích od technomaniak - Rozchodil to někdo pod Windows? Mě to háže tento...

  • Článek je starý, nové názory již nelze přidávat.
  • 10. 2. 2014 11:56

    technomaniak (neregistrovaný)

    Rozchodil to někdo pod Windows?

    Mě to háže tento error vypis :

    Native code library failed to load.
    java.lang.Unsa­tisfiedLinkError: no sdljava in java.library.path

    Přestože :

    knihovna SDL2.dll pro 32bit se úspěšně načte
    1) spouštím s tímto parametrem : -Djava.library­.path=jni
    static {
    try{
    System.load("D:/Do­kumenty/02_Wor­k/Java/Java OpenGLSDK/jni/SD­L2.dll");
    System.out.prin­tln("Nactena knihovna"); }
    catch(Unsatis­fiedLinkError e){
    System.out.prin­tln("Nelze nacist knihovnu");
    System.out.prin­tln(e.getMessa­ge()); } }
    2) a knihovna sdljava.jar je pridana jako library přes projekt

  • 10. 2. 2014 13:24

    Pavel Tišnovský
    Zlatý podporovatel

    Me to pod Windows jede s SDL 1.2, vse na XP (32bit). Spis to vypada, ze to nenajde sdljava.dll, zatimco SDL2.dll je ok. Je i sdljava.dll v tom adresari JNI?

  • 11. 2. 2014 7:59

    technomaniak (neregistrovaný)

    Ne sdljava.dll nebyla v adresaři \jni. Tak jsem ji tam hodil a pro jistotu jsem tam nakopiroval i cely adresar sdljava-0.9.1-win32-bin\lib.

    staticky blok :
    static {
    try {
    System.load("D:/Do­kumenty/02_Wor­k/Java/Java OpenGLSDK/jni/SD­L2.dll"); System.out.prin­tln("Nactena knihovna SDL2.dll"); }
    catch(Unsatis­fiedLinkError e){
    System.err.prin­tln("Nelze nacist knihovnu SDL2.dll");
    System.err.prin­tln(e.getMessa­ge()); }
    try{
    System.load("D:/Do­kumenty/02_Wor­k/Java/Java OpenGLSDK/jni/SD­LJava.dll");
    System.out.prin­tln("Nactena knihovna SDLJava"); }
    catch(Unsatis­fiedLinkError e){
    System.err.prin­tln("Nelze nacist knihovnu SDLJava");
    System.err.prin­tln(e.getLoca­lizedMessage()+"\n");
    System.err.prin­tln(e.getMessa­ge()+"\n");
    System.err.prin­tln(e.fillInStac­kTrace()+"\n");
    System.err.prin­tln(e.getCause()+"\n");
    System.err.prin­tln(e.getMessa­ge()); }
    }

    a dostal jsem se opět k hlášce :

    Native code library failed to load.
    java.lang.Unsa­tisfiedLinkError: C:\Program Files\JavaSDL\lib\SDLJa­va.dll: Can't find dependent libraries
    - což by mělo znamenat že knihovny které SDLJava.dll využívá nemůže načíst přestože jsem je nakopíroval do \jni.

    -mam W7 32bit,Java 1.7.45,Eclipse
    s tím že SDL(SDL2-2.0.1-win32-x86.zip (32-bit Windows)) jsem nakopíroval do Program Files a místo názvu adresáře sdljava-0.9.1 jsem si to pojmenoval JavaSDL.

    Tušíš v čem by mohl být problém? Díky aspoň za snahu.

  • 11. 2. 2014 9:50

    Pavel Tišnovský
    Zlatý podporovatel

    On je problem velmi pravdepodobne v tom, ze SDLJava.dll interne pracuje s SDL 1.2. Muzes prosim vyzkouset si stahnout SDL 1.2 (nebo to vzit napriklad z nejake jiz nainstalovane hry nebo DOSboxu atd.?). Melo by to byt vic DLL-ek, jedna pro ciste SDL, dalsi pro OpenGL, pro TTF atd. - to vse kdyz zkopirujes pro jistotu do stejneho adresare jako SDLJava.dll, by mohlo zacit fungovat.

    Hodne stesti.

  • 11. 2. 2014 17:46

    technomaniak (neregistrovaný)

    Hmm, je to zvlášní. S tou knihovnou SDL 1.2 pro 32bit(SDL.dll) to funguje ale ta knihovna s verzi 2.0 je tedy nefunkční.

    Problém vyřešen. Vyzkouším si pár zdrojáků až bude čas.