🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5366

JNI Newbie: oproepen java methoden vanuit C

#5366
From: Mikoyan
Date: Sat, 05 Apr 2003 13:10
50 lines
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-mail

Show 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