Ainda JNI (Quase pronto)

1 resposta
F

Bom dia.

Consegui gerar a dll HelloWorld.dll a partir dos arquivos que criei chamados HelloWorld.h e HelloWorld.c, através do Dev-C++. Mas agora quando executo a classe que criei o seguinte erro é retornado:

Exception in thread main java.lang.UnsatisfiedLinkError: print

at jni.HelloWorld.print(Native Method)

at jni.HelloWorld.main(HelloWorld.java:6)

Estas são as classes que criei:

package jni;

class HelloWorld {

private native void print();

public static void main(String[] args) {

new HelloWorld().print();

}

static {

System.loadLibrary(HelloWorld);

}

}

HelloWorld.h:

/* DO NOT EDIT THIS FILE - it is machine generated /
#include <jni.h>
/
Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern “C” {
#endif
/*

  • Class: HelloWorld
  • Method: print
  • Signature: ()V
    */
    JNIEXPORT void JNICALL Java_HelloWorld_print
    (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

HelloWorld.c:

#include <jni.h>
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include “HelloWorld.h”

JNIEXPORT void JNICALL

Java_HelloWorld_print(JNIEnv *env, jobject obj)

{

printf(Hello World!\n);

return;

}

A dll gerada já está em C:\WINDOWS\system32

Algúem tem alguma idéia do que possa ser?

1 Resposta

F

Só para constar:
O erro retornado ocorre quando tento executar a classe através do Eclipse.

Criado 29 de julho de 2006
Ultima resposta 29 de jul. de 2006
Respostas 1
Participantes 1