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 02:00 | Bezpečnostní upozornění

Byly zveřejněny (Project Zero, Intel, AMD, Arm) informace o dalších 2 bezpečnostních chybách v procesorech: variantě 3a aneb CVE-2018-3640 - Rogue System Register Read (RSRE) a variantě 4 aneb CVE-2018-3639 - Speculative Store Bypass (SSB). Podrobnosti o chybě CVE-2018-3639 například v příspěvku na blogu Red Hatu. Princip vysvětlen pomocí videa na YouTube.

Ladislav Hagara | Komentářů: 0
včera 19:44 | Zajímavý software

Spolek vpsFree.cz na svém blogu informuje, že přechází z OpenVZ na vpsAdminOS. Distribuce vpsAdminOS je založena na NixOS a not-os. Pokud provozujete OpenVZ Legacy a nevíte co dál, můžete zvážit vpsAdminOS, který je na migraci kontejnerů z OpenVZ připraven.

Ladislav Hagara | Komentářů: 4
včera 10:22 | Komunita

Minulý týden byla ze správce souborů (Files, Soubory, Nautilus) v GNOME odstraněna možnost spouštění aplikací. Po bouřlivé diskusi byla dnes tato možnost do správce souborů vrácena (commit).

Ladislav Hagara | Komentářů: 27
20.5. 22:44 | Nová verze

Ani ne po měsíci vývoje od vydání verze 2.10.0 byla vydána nová verze 2.10.2 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP. Přehled novinek i s náhledy v oznámení o vydání. Opraveno bylo 44 chyb. Novinkou je podpora formátu HEIF (High Efficiency Image File Format) a dva nové filtry.

Ladislav Hagara | Komentářů: 46
20.5. 17:44 | Komunita

SFC (Software Freedom Conservancy) na svém blogu blahopřeje společnosti Tesla k prvnímu kroku k dodržování licence GPL. Tesla ve svých elektromobilech používá svobodný software. Změny ve zdrojovým kódech ale doteď veřejně nezveřejňovala. Změna nastala tento týden. Zdrojové kódy byly zveřejněny na GitHubu. Nejedná se zatím ale o kompletní odpovídající zdrojové kódy (CCS - complete corresponding source).

Ladislav Hagara | Komentářů: 14
19.5. 17:33 | Komunita

Společnost Purism informuje o aktuálním vývoji chytrého telefonu Librem 5, jenž by měl respektovat bezpečnost, svobodu a soukromí uživatelů. Telefon už umí telefonovat. Librem 5 by měl být k dispozici v lednu 2019. Předobjednat jej lze za 599 dolarů.

Ladislav Hagara | Komentářů: 32
19.5. 09:00 | Bezpečnostní upozornění

Společnost Qualys zveřejnila výsledky bezpečnostního auditu procps-ng, tj. balíčku s příkazy free, kill, pgrep, pidof, pkill, pmap, ps, pwdx, skill, slabtop, snice, sysctl, tload, top, uptime, vmstat, w a watch. Nalezeno bylo 7 bezpečnostních chyb (CVE-2018-1120, CVE-2018-1121, CVE-2018-1122, CVE-2018-1123, CVE-2018-1124, CVE-2018-1125 a CVE-2018-1126). Dvě z nich jsou zneužitelné k lokální eskalaci práv. Příslušné záplaty jsou již k dispozici v upstreamu.

Ladislav Hagara | Komentářů: 5
18.5. 06:44 | Nová verze

Byla vydána třiadvacátá alfa verze svobodné historické realtimové strategie 0 A.D. (Wikipedie). Kódový název této nejnovější verze je Ken Wood. Představení novinek v poznámkách k vydání a také na YouTube.

Ladislav Hagara | Komentářů: 3
18.5. 05:55 | Zajímavý článek

Tento týden se v Cambridge ve Velké Británii konal hackfest, který měl za cíl zlepšit výkon na GNOME postavených systémů na slabších počítačích. Hans de Goede například analyzoval spotřebu paměti jednotlivých komponent ve Fedora 28 Workstation na stroji s 2 GB RAM a pomocí kroků popsaných v článku Kde uspořit paměť ve Fedora Workstation na MojeFedora.cz snížil spotřebu paměti z 1,4 GB na 765 MB.

Ladislav Hagara | Komentářů: 10
17.5. 20:55 | Nová verze

Bram Moolenaar oznámil vydání verze 8.1 textového editoru Vim (Vi IMproved). Hlavní novinkou je integrovaný terminál.

Ladislav Hagara | Komentářů: 7
Používáte pro některé služby inetd?
 (34%)
 (24%)
 (42%)
Celkem 137 hlasů
 Komentářů: 4, poslední včera 12:56
    Rozcestník

    Dotaz: Java jni: java.lang.UnsatisfiedLinkError: undefined symbol: JAWT_GetAW

    14.2.2009 16:55 kaplan
    Java jni: java.lang.UnsatisfiedLinkError: undefined symbol: JAWT_GetAW
    Přečteno: 607×

    Dobrý den,

    pokouším se přehrát video v mé java aplikaci pomocí mplayeru. Proto, abych byl schopen získat wid komponenty pro mplayer používám jni. Tento postup jsem vygooglil.

     

    Vytvořil jsem si ExtendedCavas.java:

    <code>

    package jmediacenter.extendedCanvas;

    public class ExtendedCanvas extends java.awt.Canvas
    {
        private static final long serialVersionUID = 1L;
        public native int getNativeWindow();

        static
        {
            try
            {
                System.loadLibrary("ExtendedCanvas");
            }
            catch (Throwable e)
            {
                e.printStackTrace();
                System.exit(1);
            }
        }
    }

    </code>

     

    Zkompiloval a pomocí javah vytvořil hlavičkový soubor: javah -jni jmediacenter.extendedCanvas.ExtendedCanvas.

     

    Toto je vygooglený kód pro nativní metodu: jmediacenter_extendedCanvas_ExtendedCanvas.c:

    <code>

    #include <jni.h>
    #include <jawt.h>
    #include <jawt_md.h>
    #include <assert.h>
    #ifdef WIN32
    #include <windows.h>
    #endif

    #include "jmediacenter_extendedCanvas_ExtendedCanvas.h"

    JNIEXPORT jint JNICALL Java_jmediacenter_extendedCanvas_ExtendedCanvas_getNativeWindow
      (JNIEnv *env, jobject obj_this)
    {
    jboolean result;
            jint lock;

            JAWT awt;
            JAWT_DrawingSurface* ds;
            JAWT_DrawingSurfaceInfo* dsi;
    #ifdef WIN32
          JAWT_Win32DrawingSurfaceInfo* dsi_win;
          HWND hWnd;
    #else
            JAWT_X11DrawingSurfaceInfo* dsi_x11;
    #endif

            /* Get the AWT */
            awt.version = JAWT_VERSION_1_3;
            result = JAWT_GetAWT(env, &awt);
            if(result == JNI_FALSE) return -1;

            /* Get the drawing surface */
            if ((ds = awt.GetDrawingSurface(env, obj_this)) == NULL)
                    return 0L;

            /* Lock the drawing surface */
            lock = ds->Lock(ds);
            if((lock & JAWT_LOCK_ERROR)  ) {
                    return -1;
            }

            /* Get the drawing surface info */
            dsi = ds->GetDrawingSurfaceInfo(ds);

            /* Get the platform-specific drawing info */
    #ifdef WIN32
          dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
          //hdc= dsi_win->hdc;
          hWnd = dsi_win->hwnd;
          return ((jlong)hWnd);
    #else
            dsi_x11 = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo;
            int id = dsi_x11->drawable;

            ds->Unlock(ds);
            return id;
    #endif
    }
    </code>

     

    Z tohoto jsem si vytvořil knihovnu:

    gcc -shared -I/usr/java/jdk1.6.0_06/include -I/usr/java/jdk1.6.0_06/include/linux -o libExtendedCanvas.so jmediacenter_extendedCanvas_ExtendedCanvas.c

     

    Cestu ke knihovně mám vloženou do -Djava.library.path. Cesty k ostatním knihovnám z .../jre/lib/i386 jsem přidal do dl.so.conf a použil dlconfig.

     

    Když potom spustím mojí aplikaci dostanu následující error:

    java.lang.UnsatisfiedLinkError: .../libExtendedCanvas.so: .../libExtendedCanvas.so: undefined symbol: JAWT_GetAWT
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at jmediacenter.extendedCanvas.ExtendedCanvas.<clinit>(ExtendedCanvas.java:29)
     

    ldd libExtendedCanvas.so hlásí toto:

            linux-gate.so.1 =>  (0xffffe000)
            libc.so.6 => /lib/i686/libc.so.6 (0xb7dab000)
            /lib/ld-linux.so.2 (0x80000000)
     

    Toto mě ale zaráží, protože předpokládám, že tato knihovna bude potřebovat min. libjawt.so ale jak je vidět nepotřebuje. Zde bude asi probém. Nevím si s tím rady.

     

    Díky za každou radu.

    Odpovědi

    Luboš Doležel (Doli) avatar 16.2.2009 01:49 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Java jni: java.lang.UnsatisfiedLinkError: undefined symbol: JAWT_GetAW
    Toto mě ale zaráží, protože předpokládám, že tato knihovna bude potřebovat min. libjawt.so ale jak je vidět nepotřebuje.
    Ale potřebuje, jen jste linkeru neřekl, že se má knihovna s libjawt.so linkovat (-ljawt ?).
    17.2.2009 20:42 kaplan
    Rozbalit Rozbalit vše Re: Java jni: java.lang.UnsatisfiedLinkError: undefined symbol: JAWT_G

    Problém vyřešen.

    Stačilo při kompilaci knihovny přilinkovat knihovnu libjawt.so:

    gcc -shared -I/usr/java/jdk1.6.0_06/include -I/usr/java/jdk1.6.0_06/include/linux -o libExtendedCanvas.so jmediacenter_extendedCanvas_ExtendedCanvas.c -L/usr/java/jdk1.6.0_06/jre/lib/i386 -ljawt

    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.