Skip to Main Content

Java HotSpot Virtual Machine

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

How to return string or array of strings from JAVA code to C using JNI

843829Mar 6 2009 — edited Mar 10 2009
Hi
I am callin java method from C function using JNI.
I want to return string or array of strings from java method.
However program is crashing at run time.

Code for returning array of strings is as below:
Java code:
public class Cello
{	
  public static String[] abc(String[] args)
    	{
		String[] strRetOP = new String[2];
		
		System.out.println("Hello JAVA .... !");
		
		strRetOP[0]="SUCCESS";
		return strRetOP;		
	}
	public static void main (String[] args)
	{	
	}
}
C code snippet:
jobjectArray args2 , args5OP ;
jstring jstr2[NUM],   jstr3,  jstr5OP;
:
id2_main = (*env)->GetStaticMethodID(env, stringClass2,"abc", "(Ljava/lang/String;)Ljava/lang/String");
:
jstr3 = (*env)->FindClass(env, "java/lang/String");
:
args2 = (*env)->NewObjectArray(env, NUM, jstr3, jstr2[0] );
:
jstr5OP = (*env)->FindClass(env, "java/lang/String");
args5OP =  (*env)->NewObjectArray(env, NUM2, jstr5OP, jstr2[0] );
	for(i=1;i<NUM2;i++)
		(*env)->SetObjectArrayElement(env, args5OP, i, jstr2);

jstr5OP = (*env)->CallStaticObjectMethod(env, stringClass2, id2_main, args2);
:
I could execute program successfully with java returning integer and C function calling id2_main = (*env)->GetStaticMethodID(env, stringClass2,"abc", "([Ljava/lang/String;)I"); and CallStaticIntMethod. 

However program is crashing when java method is changed to return array  of Strings instead of int.
Can anybody please help?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 7 2009
Added on Mar 6 2009
9 comments
841 views