Problemer med JNI og DJGPP
Jeg har fulgt JNI tutorialen http://java.sun.com/docs/books/tutorial/ og prøvet at få Hello World eksemplet til at virke. Jeg bruger DJGPP som min C compiler.Jeg er nået til step 4 i tutorialen, som handler om at skrive .c filen, og den har jeg kopieret direkte fra siden. For at være sikker på at den virker, har jeg prøvet at kompilere den, med det resultat at jeg får i hundredevis af fejl omkring jni.h, som jeg har kopieret direkte fra jdk's include bibliotek og lagt i DJGPP's include bibliotek.
Yderligere får jeg følgende fejl omkring min .c og .h fil:
In file included from C:\HelloWorldImp.c:2:
C:\/HelloWorld.h:15: error: syntax error before 'void'
C:\/HelloWorld.h:16: warning: data definition has no type or storage class
C:\HelloWorldImp.c:5: error: syntax error before 'void'
Min HelloWorld.h fil ser således ud:
/* 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: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
Og min HelloWorldImp.c fil ser således ud:
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
Hvad i alverden kan der være galt?