This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Invoking gcj compile program from "c"
- From: Vaijayanthi Mala Suresh <vaijayanthimalas at gmail dot com>
- To: java at gcc dot gnu dot org
- Date: Wed, 27 May 2009 12:59:25 +0530
- Subject: Invoking gcj compile program from "c"
I have written an HelloWorld.java as given below
public class HelloWorld {
? ?public HelloWorld()
? ?{
? ? ?System.out.println("Hello from constructor");
? ?}
? ?public void printline()
? ?{
? ? ?System.out.println("Hello from printline");
? ?}
? ?public static void main(String [] args) {
? ? ?System.out.println("Hello from main");
? ? ?HelloWorld ht = new HelloWorld();
? ? ?ht.printline();
? ?}
?}
I have compiled it with gcj as given belwo
gcj -c HelloWorld.java
gcj -shared HelloWorld.o -o libHelloWorld.so
Copied the .so file into the folder as per LD_LIBRARY_PATH.
I have a cstartup.c which does the JVM Initialization and has to do a
FindClass() as given below
res = JNI_CreateJavaVM(&jvm,&env,&vm_args);
if (res < 0)
{
? ? ? fprintf(stderr, "Can't create Java VM\n");
exit(1);
? ? }
cls = (*env)->FindClass(env, "HelloWorld");
if (cls == 0)
{
? ? ? ?fprintf(stderr, "Can't find HelloWorld class\n");
? ? ? ?exit(1);
? ? }
This prints me "Can't find HelloWorld class"
Can someone help me in this regard?