Jni?

5 respostas
Y

Desculpe se estou postando minha duvina do fórum errado!!!

Eu estou iniciando no uso da técnologia JNI. Acabo de implementar o programa básico de testes mas quando executo recebo uma UnsatisfiedLinkException.

Eu fiz, aparentemente, tudo que devia:

public class Test {

	static {
		System.loadLibrary("Test");
	}

	public static void main(String[] args) {
		Test t = new Test();
		t.print("JNI Test Ok");
	}

	public native void print(String msg);

}
#include "Test.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_Test_print(JNIEnv *env, jobject obj, jstring msg) {
    jboolean isCopy;
    char *rawmsg;

    rawmsg = (*env)-&gtGetStringUTFChars(env, msg, &isCopy);
    printf(rawmsg);
}

…onde Test.h é o arquivo de cabeçalho gerado pela ferramente javah!!

O arquivo Test.c foi compilado com sucesso gerando uma DLL Test.dll que se encontra no mesmo diretório da classe Test.class.

Alguém pode me ajudar?

5 Respostas

louds

Qual SO? Qual compilador? Qual versão do Java? Quando comando você usou para executar? Quais eram as variaveis de ambiente? Qual era o path? Você setou java.library.path? Você setou LD_LIBRARY_PATH? Tua DLL tem os símbolos necessários?

Y

1 - Windows.

2 - MingW gcc.

3 - jdk 1.5.02

4 - java [Classe]

5 - Não setei nenhuma variavel de ambiênte, nem mesmo setei java.library.path, a dll está no mesmo diretório do arquivo .class.

6 - Que símbolos? O código que usei está ai!!

peczenyj

Qual a mensagem que acompanha?

algo como ‘is not a valid Win32 application’ ?

ou ‘no Test in java.library.path’ ?

Getware

Também estou tentando criar um metodo nativo em java.
Estou usando as mesmas ferramentas que vc… conssegui criar uma dll mas nao funcionou… como vc fez pra criar a sua dll no MinGW com GCC ? Quais comandos vc usou? Quais arquivos vc usou?

Obrigado,

Lich_King

aplicações JNI são dependentes d SO?
Se eu tiver no linux não tem como gerar a .dll além do .so?? :? :?:

Criado 26 de setembro de 2006
Ultima resposta 28 de set. de 2006
Respostas 5
Participantes 5