[1631] in java-interest
Accessing java String from native c function.
daemon@ATHENA.MIT.EDU (Imran Balkhi (NT))
Tue Sep 12 00:16:57 1995
Date: Mon, 11 Sep 1995 17:59:35 -0700
From: ibalkhi@dnt.dialog.com (Imran Balkhi (NT))
To: java-interest@java.sun.com
Cc: cmcmanis@scndprsn.Eng.Sun.COM, jsw@cs.brown.edu, Orca.Starbuck@Eng.Sun.COM
Hi,
I am trying to access java string type data element from c native function. At runtime IncompatibleClassChangeException error. Please Help.
Java code:
----------
class J_AccNumType {
public native void cpJavaToC(Object xx);
String AccNum;
public void set_AccNum(String value){
AccNum = value;
}
public String get_AccNum(){
return (AccNum);
}
public void saveGuts(){
cpJavaToC(this);
}
};
C/C++ code:
-----------
extern "C"{
#include "StubPreamble.h"
#include "javaString.h"
#include "J_AccNumType.h"
#include <stdio.h>
void J_AccNumType_cpJavaToC(struct HJ_AccNumType *obj,struct Hjava_lang_Object* javaobj);
}
#include <iostream.h>
void J_AccNumType_cpJavaToC(struct HJ_AccNumType *obj,struct Hjava_lang_Object* javaobj)
{
cout << "Trying to call Java method " << endl;
execute_java_dynamic_method (0, javaobj, "get_AccNum", "()LString");
cout << "data " << *data << endl;
}
Output & Error message at runtime:
----------------------------------
Trying to call Java method
java.lang.IncompatibleClassChangeException J_AccNumType: dynamic method get_AccNum()LString not found
at J_AccNumType.saveGuts(AccNumType.java:40)
at TestScript.main(TestScript.java:34)
Note :
------
If I change the type of data element AccNum from String to int everything runs fine.
-
Note to Sun employees: this is an EXTERNAL mailing list!
Info: send 'help' to java-interest-request@java.sun.com