+ Responder ao Tópico



  1. #1
    aline_slz
    Visitante

    Padrão problemas com jni(java native interface)

    Bom to tentando usar o JNI (Java Native Interface) pra rodar alguns aplicativos, to usando os códigos nativos em C/C++! Até aí tudo bem ou melhor quase...uso a seguinte linha de comando para criar o meu arquivo ".so" e compilar meu arquivo
    g++ meuprograma.cpp -I /usr/java/jsdk/include
    -I /usr/java/jsdk/include/linux -shared -fpic -o libmeuprograma.so

    export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

    O meu arquivo com a extensão "so" é criado certinho lá meu diretório, so q a classe diz o q ñ consegue carregar essa biblioteca com uma mensagem dizendo "UnsatisfiedLinkError", sei q com certeza ñ tá conseguindo encontrá-la, o mais devo fazer pra q a minha biblioteca seja carregada corretamante?Já fiz e refiz e nada!!!

  2. #2
    aline_slz
    Visitante

    Padrão Eu mesma respondo!!!

    Na verdade foi só falta de atenção isso funciona sim e tá certinho!!
    Era só um problema com prefixo "lib" q ainda ñ tinha percebido a sua importância. No caso serve para indicar q eh uma biblioteca q vai ser carregada, no meu programa escrito em java. O meu erro foi colocar no meu arquivo em System.loadLibrary("libmeuprograma"), qdo deveria ser só "meuprograma". Posso até estar enganada mas pelo q eu li seria isso. Qq coisa me corrijam. Mas sei q depois disso funcinou direitinho
    !!!

  3. #3

    Padrão problemas com jni(java native interface)

    System.loadLibrary("libmeuprograma")

    Onde, libmeuprograma é o nome da sua bibliteca.
    É uma convenção utilizar o prefixo "lib" em nomes de bibliotecas, assim qualquer pessoa que ver o arquivo saberá que é uma biblioteca, e também fica mais fácil de organizar/localizar os arquivos.