我正在使用z / os上的Invocation API运行一个简单的JNI程序.Java程序有一个像这样的简单sayHello()方法 -
public static String sayHello(){
return "Hello World!!!";
}
调用此方法并打印输出的代码如下 -
jmethodID mid=(*env)->GetStaticMethodID(env,cls2,sHStr,sigVoidString);
jstring j = (jstring)(*env)->CallStaticObjectMethod(env,cls2, mid);
const char *str = (*env)->GetStringUTFChars(env, j, NULL);
printf("%s", str);
(*env)->ReleaseStringUTFChars(env,j,str);
输出打印如下 -
.. %%?..?%....
打开HEX会显示以下内容,表明确实是HelloWorld !!! -
46666256766222
85CCF07F2C4111
我已经检查过几篇关于this和this等相同问题的SO帖子,并且每个帖子都建议使用我使用的GetStringUTFChars而没有任何成功。 z / os有什么特定的东西在这里吗?
答案 0 :(得分:0)
在这种情况下,使用__atoe()函数对我有用。