Pessoal como faço para um programa em java chamar funções em C, alguém conhece um bom tutorial?
Rapaz a especificação da Java Native Interface (JNI) tá no link: http://java.sun.com/j2se/1.3/docs/guide/jni/spec/jniTOC.doc.html
Mas rapidamente JNI funciona da seguinte forma:
- Você cria uma classe Java com um método com o modificador native e sem corpo. Ex (note a chamada System.loadLibrary, ela serve para fazer a ligação entre o componente nativo e a classe java - Se você desenvolveu seu componente no Windows, para este exemplo, ele deverá se chamar hello_world.dll, se seu componente foi desenvolvido no Linux ele deverá se chamar hello_world.so):
public class TesteJNI {
static {
System.loadLibrary("hello_world");
}
public native void helloWorld();
}
- Você compila a classe e em seguida utiliza o aplicativo javah (que vem no jdk) para gerar um arquivo header pra a implementação do componente em c/c++.
- Utilizando um compilador c/c++, você implementa o comportamento do método nativo.