Article View: be.comp.programming
Article #5366JNI Newbie: oproepen java methoden vanuit C
From: Mikoyan
Date: Sat, 05 Apr 2003 13:10
Date: Sat, 05 Apr 2003 13:10
50 lines
2684 bytes
2684 bytes
Hallo,
ik probeer voor collega studenten een SystemTray te
schrijven voor een in Java geschreven ICQ/MSN/YAHOO
messenger. Nu verschijnt er in KDE/GNOME al een mooi
icoontje in the notification area (of hoe ze dat in
godsnaam nu ook mogen noemen), maar het ding begeeft
het wanneer het callbacks moet uitvoeren, maw. java
methodes oproepen vanuit de C code...
Een code sniplet volgt hieronder. Het ding crashed
blijkbaar op
listenercls = (*env)->GetObjectClass(env, listener);
maar ik heb het vermoeden dat het het al misloopt bij
de eerste ->GetObjectClass, vermits wanneer ik de waarde
van cls uitprint, die steeds anders is, en de waarde
van fid steeds nul is... Hopelijk kan iemand mij op
de goede weg zetten, dank bij voorbaat.
Mikoyan
<snip>
/*
* Gtk Callback Function
*/
static gboolean tray_clicked (GtkWidget *event_box,
GdkEventButton *event, gpointer data) {
JavaObject *javaObject = (JavaObject*) data;
JNIEnv *env = javaObject->env;
jobject obj = javaObject->obj;
jclass cls;
jobject listener;;
jclass listenercls;
jfieldID fid;
cls = (*env)->GetObjectClass(env, obj);
g_print("This Class : %d\n", cls);
fid = (*env)->GetFieldID(env, cls, "listener", "LSystemTrayListener");
g_print("Listener fid : %d\n", fid);
listener = (*env)->GetObjectField(env, obj, fid);
g_print("listener : %d\n", listener);
listenercls = (*env)->GetObjectClass(env, listener);
g_print("Listener Class : \n");
</snip>
Technical Details
Message-ID:
<pan.2003.04.05.13.20.36.332353@hotmail.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.com!cyclone.bc.net!news-hub.siol.net!newsfeed1.eu.ignite.net!newsr1.ipcore.viaginterkom.de!btnet-peer1!btnet-peer0!btnet-peer!btnet!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,2166f37375a4f1c4,start X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-04-05 05:10:04 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.com!cyclone.bc.net!news-hub.siol.net!newsfeed1.eu.ignite.net!newsr1.ipcore.viaginterkom.de!btnet-peer1!btnet-peer0!btnet-peer!btnet!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "Mikoyan" <mikoyan82@hotmail.com> Subject: JNI Newbie: oproepen java methoden vanuit C User-Agent: Pan/0.13.3.90 (Back in the Garnome) Message-ID: <pan.2003.04.05.13.20.36.332353@hotmail.com> Newsgroups: be.comp.programming MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Lines: 50 Date: Sat, 05 Apr 2003 13:10:01 GMT NNTP-Posting-Host: 213.224.82.237 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1049548201 213.224.82.237 (Sat, 05 Apr 2003 15:10:01 MET DST) NNTP-Posting-Date: Sat, 05 Apr 2003 15:10:01 MET DST Organization: Telenet Internet