Todos os exemplos que encontrei de chamada de um método Java de C usando a API Foreign Function & Memory envolvem retornos de chamada, ou seja, um método Java que executa alguma função nativa com um retorno de chamada Java como parâmetro.
E quanto a C chamando um método Java diretamente? JNI ainda é a única maneira de fazer isso?