Interfacer un programme c en java

Fermé
Rico - 4 avril 2001 à 10:54
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 17 juin 2008 à 17:25
Pourriez vous m expliquer comment interfacer un programme c
en java. (liens et doc eventuellement).
Merci
A voir également:

3 réponses

Aldian Messages postés 3 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 17 juin 2008
16 juin 2008 à 20:23
UP!
Ca m'intéresserait bien moi aussi :)
0
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
16 juin 2008 à 21:44
Salut,

Via un truc appelé JNI (Java Native Interface), https://en.wikipedia.org/wiki/Java_Native_Interface Maintenance manuelle possible si pas beaucoup de méthodes appelées, sinon un outil comme Swig http://www.swig.org/ s'avère nécessaire.

++
0
Aldian Messages postés 3 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 17 juin 2008
16 juin 2008 à 23:26
merci bien.

j'ai entre temps également trouvé cet excellent tutoriel : https://ydisanto.developpez.com/tutoriels/java/runtime-exec/

avec tout ça je devrai y arriver :)
0
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723
16 juin 2008 à 23:30
C'est autre chose ce que tu as trouvé. Dans ton lien, il ne s'agit pas d'interfacer du C avec du Java, mais d'appeler un exécutable depuis Java. Interfaçage C - Java = tu as un projet source en C, tu crées un ou plusieurs fichiers .dll (ou .so) et tu appelles tes fonctions C depuis le code Java... Vraiment autre chose que lancer un .exe depuis Java, OK?
0
Aldian Messages postés 3 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 17 juin 2008 > sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010
17 juin 2008 à 14:59
je suis désolé, j'aurais sans doute du donner plus de détails. En fait l'appel de l'exécutable devrait je pense me suffire. Le problème que je rencontre est que j'ai développé une application java qui doit à un moment effectuer un certain traitement assez compliqué sur un fichier, et il se trouve que j'ai un collègue qui a réalisé un programme C qui implémente ce traitement. Sauf que lui travaille sous AIX et moi sous Debian. Donc j'ai des problèmes lors de la recompilation des sources, parce que les librairies sont différentes. Du coup j'explore toutes les possibilités :

* Si j'arrive à compiler correctement le source, l'appel d'un exécutable suffira.
* Sinon, peut être que la solution hybride de mettre le code C dans le programme java ferait l'affaire?
* En dernier recours, il faudrait que je réécrive le programme C en java, mais il y a quand même 1500 lignes de code et pas beaucoup de commentaires.

voila voilou :)
0
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 723 > Aldian Messages postés 3 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 17 juin 2008
17 juin 2008 à 17:25
oki doki... A mon avis, essaie les options 1 et 3 en premier, le JNI n'est pas une chose très aisée à mettre en place.
++
0