Я не могу разобрать вопрос. Передача строки "java из jni в java" звучит излишне.
Если все, что вам нужно, это получить содержимое строки из собственного кода, вы можете использовать JNI GetStringUTFChars, чтобы получить представление UTF-8. Строки являются неизменяемыми и не могут быть изменены напрямую. Вы можете создать новую строку из нативного с помощью NewStringUTF.
Обратите внимание, что строковые данные, передаваемые в NewStringUTF, должны быть в форме "модифицированного UTF-8". См. Документацию JNI для объяснения того, что это значит.
Если все, что вы хотите сделать, это передать символы вокруг, вы можете вместо этого использовать буфер char [] (GetCharArrayElements, ReleaseCharArrayElements). Обратите внимание, что символы языка Java являются UTF-16, поэтому «jchar» - это 16-разрядное значение без знака (не пытайтесь рассматривать их как 8-разрядный «char» в C ++).