Hallo.
Ich bin gerade dabei, micht etwas mit JNI zu beschäftigen. Dazu wollte ich erstmal eine simple Hello World Anwendung erstellen.
Das klappt auch soweit, dass ich keine Fehlermeldung mehr erhalte. Vorgehensweise müsste auch richtig sein: java code geschrieben; kompiliert; header erstellt; c code geschrieben; dll erzeugt.
So sieht der java code aus:
<PRE>
public class jnihelloHelloWorld {
public void jnihelloHelloWorld(){
System.out.println(this.HelloWorld());
}
static{
System.loadLibrary("hello");
}
public native int HelloWorld();
public static void main(String[] args) {
jnihelloHelloWorld jhw = new jnihelloHelloWorld();
}
}
</PRE>
und so der c code:
<PRE>
#include "C:\JBuilder4\jdk1.3\include\jni.h"
#include "C:\jbproject\jnihello\classes\jnihello\jnihelloHe lloWorld.h"
#include "C:\Programme\Microsoft Visual Studio\VC98\include\stdio.h"
JNIEXPORT jint JNICALL
Java_jnihelloHelloWorld_HelloWorld(JNIEnv *env, jobject obj)
{
printf("Hallo Welt");
return (10);
}
</PRE>
wie man sehen kann, soll sowohl "Hallo Welt" ausgegeben werden, als auch nur zum ausprobieren ein integer wert zurückgegeben werden.
Wenn ich jetzt im JBuilder das Programm ausführe, passiert garnichts (auch keine Fehelermeldung :-)
Hat jemand eine Ahnung?
MfG Simon
Ich bin gerade dabei, micht etwas mit JNI zu beschäftigen. Dazu wollte ich erstmal eine simple Hello World Anwendung erstellen.
Das klappt auch soweit, dass ich keine Fehlermeldung mehr erhalte. Vorgehensweise müsste auch richtig sein: java code geschrieben; kompiliert; header erstellt; c code geschrieben; dll erzeugt.
So sieht der java code aus:
<PRE>
public class jnihelloHelloWorld {
public void jnihelloHelloWorld(){
System.out.println(this.HelloWorld());
}
static{
System.loadLibrary("hello");
}
public native int HelloWorld();
public static void main(String[] args) {
jnihelloHelloWorld jhw = new jnihelloHelloWorld();
}
}
</PRE>
und so der c code:
<PRE>
#include "C:\JBuilder4\jdk1.3\include\jni.h"
#include "C:\jbproject\jnihello\classes\jnihello\jnihelloHe lloWorld.h"
#include "C:\Programme\Microsoft Visual Studio\VC98\include\stdio.h"
JNIEXPORT jint JNICALL
Java_jnihelloHelloWorld_HelloWorld(JNIEnv *env, jobject obj)
{
printf("Hallo Welt");
return (10);
}
</PRE>
wie man sehen kann, soll sowohl "Hallo Welt" ausgegeben werden, als auch nur zum ausprobieren ein integer wert zurückgegeben werden.
Wenn ich jetzt im JBuilder das Programm ausführe, passiert garnichts (auch keine Fehelermeldung :-)
Hat jemand eine Ahnung?
MfG Simon
Comment