This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Using CNI on inner classes
- From: Vaijayanthi Mala Suresh <vaijayanthimalas at gmail dot com>
- To: java at gcc dot gnu dot org
- Date: Thu, 13 Aug 2009 12:48:08 +0530
- Subject: Using CNI on inner classes
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