Hope this doesn't end as a repost but ain't sure it was sent the first time

From: Simmen David
Sent: Friday, June 01, 2012 1:58 PM
To: '[email protected]'
Subject: Extending java lang classes

Hi

Out of a personal interest I wanted to add an additional method to 
java.lang.Object which returns the integer 42.

So far I added to Object.java the method:
public final native int get42();

in Object.c:
JNIEXPORT jint JNICALL
Java_java_lang_Object_get42(JNIEnv *env, jobject this) {
                if (this == NULL) {
                                JNU_ThrowNullPointerException(env, NULL);
                                return 0;
                } else {
                                return 42;
                }
}

And in java_lang_Object.h you can see the generated declaration by javah:
JNIEXPORT jint JNICALL Java_java_lang_Object_get42
  (JNIEnv *, jobject);

It all com[piles and so but when I try to call the method I get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: 
java.lang.Object.get42()I
                at java.lang.Object.get42(Native Method)
                at Main.main(Main.java:13)

I found out that it tries to look it up at runtime and not like for example 
getClass at startup but I didn't find the place where to specify that it should 
load it at startup.
So what am I missing here so that it runs?

MfG David



Reply via email to