This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]