Здравствуйте, мне необходимо из java кода вызвать функции, реализованные на С/C++. Как добиться того, чтобы сохранялась вызываемая последовательность действий?
Например, есть класс JniTest, в котором объявлена нативная функция showString().
'
public class JniTest
{
static {
try {
System.loadLibrary("JniTest" +
System.getProperty("sun.arch.data.model"));
} catch (UnsatisfiedLinkError e) {
System.out.println("библиотека не найдена (" + e + ")");
}
}
// обращаем внимание на слово native
public native void showString();
}'
Затем вызываю эту функцию в коде:
'
JniTest SS = new JniTest();
try {
System.out.println("1");
SS.showString();
System.out.println("2");
}
catch (UnsatisfiedLinkError e) {
System.out.println("метод не найден (" + e + ")");
}'
В итоге получается, что на консоли я вижу:
1
2
результат выполнения функции
Хотя я ожидаю и хочу следующую последовательность:
1
результат выполнения функции
2
Наверняка, многие, кто разбирался с JNI, сталкивался с этой проблемой. Может быть подскажете какие-нибудь пути решения данной проблемы?
Продвижение своими сайтами как стратегия роста и независимости