Gostaria de saber para que serve a JNI. � um compilador direto para a plataforma?? � 
mais r�pido que o Java normal?

[EMAIL PROTECTED] wrote:

> Ola' pessoal
>
> Por favor uma ajuda quem conhece JNI (Java Native Interface) !!!
> Estou com problemas ao usar JNI num RedHat Linux  2.0.36.
> Dentro da classe "StartHoudini" ha' um metodo nativo chamado getMacAddress()
> Criei o arquivo-cabecalho .h com o javah.
> Apos isso implementei o programa em C que implementa o metodo nativo, tudo isso sem 
>problemas.
>
> Apos entao compilei o programa .c com a seguinte linha:
> % gcc -fPIC -I/jdk1.2/include -I/jdk1.2/include/linux -c getMacAddr.c -o getMacAddr.o
>
> Isso me gerou o arquivo getMacAddr.o, que ainda nao e' uma biblioteca ELF.
>
> Entao para gerar a biblioteca ELF libjava-mac-addr.so, eu executo a linha:
> % gcc -shared -Wl,-soname,libjava-mac-addr.so -o libjava-mac-addr.so.1 getMacAddr.o
>
> Isso gerou a biblioteca ELF libjava-mac-addr.so.1
>
> Criei um link entao de libjava-mac-addr.so para libjava-mac-addr.so.1
> % ln -sf libjava-mac-addr.so.1 libjava-mac-addr.so
>
> Quando chamo a VM para executar StartHoudini recebo uma excessao:
> Exception in thread "main" java.lang.UnsatisfiedLinkError: no libjava-mac-addr.so in 
>java.library.path
>         at java.lang.ClassLoader.loadLibrary(Compiled Code)
>
> Ao meu ver parece que a VM exige uma propriedade (java.libray.path) que indique onde 
>as bibliotecas estao. Tentei entao:
> % export LD_LIBRARY_PATH=(path para a biblioteca)
> % java -Djava.library.path=$LD_LIBRARY_PATH houdini.system.StartHoudini
>
> Continuo com a mesma excessao...
> Em tempo: estou executando a VM como root, entao nao e' problema com direitos.
>
> Quem pode me ajudar por favor ??
> Sera' que a biblioteca para JNI nao deve ser padrao ELF ?
>
> Abraco
> Rodrigo
>
>     --------------------------- LISTA SOUJAVA ---------------------------
>     http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
>     [d�vidas mais comuns: http://www.soujava.org.br/faq.htm]
>     [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>     ---------------------------------------------------------------------

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [d�vidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a