Hello,
J'ai des scripts en C (fichiers .c).
Est-ce possible de les executer depuis JAVA?
Par exemple, j'ai cette fonction:
Je voudrais l'appeler, mais depuis JAVA...Code:
1
2
3
4 int main (int argc, char **argv) { ... }
Merci, A+
Version imprimable
Hello,
J'ai des scripts en C (fichiers .c).
Est-ce possible de les executer depuis JAVA?
Par exemple, j'ai cette fonction:
Je voudrais l'appeler, mais depuis JAVA...Code:
1
2
3
4 int main (int argc, char **argv) { ... }
Merci, A+
Compile ton fichier c en exécutable. Ensuite, il est possible d'y accéder grâce à Runtime.getRuntime().exec("..."). Remplace les trois points par le chemin de ton exécutable suivi des arguments, comme si tu le lançais en ligne de commandes.
Tu peux aussi passer par JNI (Java Native Interface), c'est assez simple à utiliser et tu pourras appeler directement ton code C.
Tu dois faire des dll avec ton code C et les appeler depuis Java par JNI.
Ouais, merci, JNI a l'air pas mal... Seulement j'ai trouvé commentMais je n'ai pas réussi à appeler une méthode C directement, sans passer par une dll ou un .h.Citation:
faire des dll avec ton code C et les appeler depuis Java par JNI
Comment faire?
Merci, A+
Avec JNI, tu es obligé de passer par une dll...
La procédure (simplifiée) à suivre est la suivante :
1) créer une classe java avec les prototypes des méthodes "native"
2) utiliser javah pour générer le .h
3) créer un programme c pour implémenter les méthodes du .h
4) en faire une dll
Dans la classe (1), tu load la dll par System.load ou System.loadLibrary
Si ton serveur cible est sous unix, c'est un .o et il me semble que la bibliothèque doit être préfixée par lib
J'espère n'avoir rien oublié...
A+
Oui pardon, la dll est un passage obligé, m'en souvenais plus :aie:
(il me semblait que l'on pouvait s'en passer, autant pour moi)
Ok, merci pour ces réponses, je vais tester ;)
A+