Using CNI on inner classes
Vaijayanthi Mala Suresh
vaijayanthimalas@gmail.com
Thu Aug 13 07:18:00 GMT 2009
Hi,
I have an Test.java as shown below
public class Test {
private native void natRegister(Inner obj);
Inner myInnerClassObj;
class Inner
{
private void printline()
{
System.out.printline("Prints from printline");
}
Inner()
{
}
}
public Test()
{
myInnerClassObj = new Inner();
}
public void register()
{
natRegister(myInnerClassObj);
}
public static void main(String [] args) {
System.out.println("Hello from main");
Test ht = new Test();
ht.register();
}
}
I have the Test.cc defined as shown below
// This file is intended to give you a head start on implementing native
// methods using CNI.
// Be aware: running 'gcjh -stubs' once more for this class may
// overwrite any edits you have made to this file.
#include <gcj/cni.h>
#include <java/lang/UnsupportedOperationException.h>
#include "Test.h"
#include "Test$Inner.h"
void
Test::natRegister(::Test$Inner *innerObj)
{
innerObj->printline();
}
I need to access the private method from the native code. This was
possible in JNI but it is not possible in CNI.
Can you please suggest me a solution for this using CNI.
Thanks
Mala
More information about the Java
mailing list