Sem postar parte do seu código, é difícil.
Mas eu posso dar uma sugestão - NoodleGlue: http://www.noodleglue.org/noodleglue/noodleglue.html
O NoodleGlue é OpenSource, e funciona da seguinte maneira: você escreve o código C++ para o qual pretende fazer comunicação com Java, via JNI. Você pode usar código C++ pré-existente também, claro, como por exemplo, OpenGL. A partir deste código C/C++, você gera - usando o NoodleGlue - todo o código “JNI” necessário, sem complicações. E então, é só usar.
O NoodleGlue é relativamente recente, mas já foi usado com sucesso em vários projetos (vide página), e o código que ele gera supera a qualidade de código escrito à mão na maioria dos casos, e geralmente o código é razoavelmente optimizado.
Na página tem mais detalhes, mas eu recomendo que você use ele caso queira “gerar bindings” para alguma lib escrita em C++, caso um binding já não exista.
Rodrigo