wiki:SIMEO/CNI

SIMEO - Compiled Native Interface

System: Ubuntu 9.10

Requirements:

  • libgcj10-dev
  • gcj-jdk

Compilation Steps

$ javac Test.java
$ gcjh -cp . Test
$ gcj -c Test.java
$ objcopy Test.o --redefine-sym '_ZGr8_$_dummy=_2_dummy' 

Sample Code

#include <gcj/cni.h>
#include <java/lang/System.h>
#include <java/io/PrintStream.h>
#include "Test.h"

using namespace java::lang;

// ...

void init() {
	if(JvCreateJavaVM(NULL) < 0) {
		printf("Error creating the JVM!!!\n");
		exit(1);
	}
	
	JvAttachCurrentThread(NULL, NULL);
}

void test()
{
        String *msg = JvNewStringLatin1("The JVM is ready!");
        JvInitClass(&System::class$);
        System::out->println(msg);
	JvInitClass(&Test::class$);
	Test *obj = new Test();
	obj->test();
}
Last modified 14 years ago Last modified on Dec 13, 2009, 10:36:20 AM