Comment intergrer du code C en Java???

Comment intergrer du code C en Java??? - C - Programmation

Marsh Posté le 04-05-2004 à 23:23:42    

salut, j'ai en fait un projet à faire (enfin à subir) qui consiste à faire un système de tchate en LAN avec C. il serait donc préférable que je fasse l'interface graphique en Java pour gagner plein de ligne de code, mais j'ai du mal à trouver comment integrer des appels de fontions C en Java.
je précise que le projet doit être fait en C (tube, socket, mémoire partagée...) et surtout pas en Java. Pourquoi?? vas savoir :pfff:

Reply

Marsh Posté le 04-05-2004 à 23:23:42   

Reply

Marsh Posté le 05-05-2004 à 00:45:06    

Regarde du côté des "JNI" ? (enfait j'en ai juste entendu parlé car c'est un collègue qui c'est chargé de faire que ça fonctionne, moi je m'occupais du code en C). :D
 
Mais mettre en place le "bordel" java avit été assez complexe surtout qu'il fallait adapter le code C (prototype des fonctions).
 
Personnellement j'y connais rien. Bon finallement moi je filais le code C avec lequel mon collègue faisait une DLL qu'il pouvait ensuite utiliseren Java.
 
Sinon, le C c'est vachement bien ! :D
 
C'est sur quel OS ?


Message édité par darkoli le 05-05-2004 à 00:46:06
Reply

Marsh Posté le 05-05-2004 à 00:49:11    

bah windows

Reply

Marsh Posté le 05-05-2004 à 05:12:39    

Je sais pas si c'est faisable mais çà pourrait être une interface java qui balance des requêtes sur un port, et le prog c qui écoute et interprète les requêtes.


Message édité par spunkmeyer le 05-05-2004 à 05:13:18
Reply

Marsh Posté le 05-05-2004 à 08:30:27    

les 2 solutions les + courantes:
  - client/serveur entre l'IHM (typiquement java/swing) et le coeur du programme en C
  - 1 seul programme, en utilisant en effet JNI pour passer du C au java et réciproquement. Dans ce dernier cas: http://java.sun.com/docs/books/jni/
 

Reply

Marsh Posté le 05-05-2004 à 09:43:40    

Je sais que SWIG le permet aussi, je sais pas ce qu'il vaut par rapport à JNI. Son plus peut être : une fois ton fichier d'interface écris, générer du code pour Java, Python, Perl ou plein d'autre c'est juste une ligne de commande à modifier.
www.swig.org

Reply

Marsh Posté le 05-05-2004 à 09:45:54    

faire et utiliser une DLL en java
 
http://java.sun.com/docs/books/tut [...] index.html

Reply

Marsh Posté le 05-05-2004 à 09:48:48    

Taz a écrit :

bah windows

non monsieur  :non:  
suis sous Unix
 
en tout cas merci beaucoup pour vos précieuses réponses  :jap:


Message édité par senomo le 05-05-2004 à 09:49:11
Reply

Marsh Posté le 05-05-2004 à 09:51:59    

Citation :

surtout pas en Java. Pourquoi?? vas savoir


C'est un classique ce TP, on se l'est tous farci, avec du bon vieux fork pourri. C'est un cas d'école.

Reply

Marsh Posté le 05-05-2004 à 09:58:10    

HelloWorld a écrit :

Citation :

surtout pas en Java. Pourquoi?? vas savoir


C'est un classique ce TP, on se l'est tous farci, avec du bon vieux fork pourri. C'est un cas d'école.

pardon??? pourquoi fork() ????? enfin j'avoue que je ne l'ai même pas attaqué encore

Reply

Marsh Posté le 05-05-2004 à 09:58:10   

Reply

Marsh Posté le 05-05-2004 à 10:09:53    

Pourquoi des tubes et de la mémoire partagée alors ?
Dois-tu gérer plusieurs connexions simultanément ?

Reply

Marsh Posté le 05-05-2004 à 10:12:21    

non non j'ai le choix entre communication par tubes, mémoire partagée, sockets... mais je crois que je vais utiliser les sockets c'est simple et concret

Reply

Marsh Posté le 05-05-2004 à 15:49:55    

mon avis tu vas souffrir si tu fais ca. Soit tu fait du JNDI et la c'est la fin pour toi. Soit tu fait tout en java, ou tout en c (GTK, QT), moi j'te conseil l'un des derniers. Fait tout en java, le rseau ressemble au reseau de C

Reply

Marsh Posté le 05-05-2004 à 16:03:16    

JNI, pas JNDI :o

Reply

Marsh Posté le 05-05-2004 à 16:27:08    

MrNavarro a écrit :

mon avis tu vas souffrir si tu fais ca. Soit tu fait du JNDI et la c'est la fin pour toi. Soit tu fait tout en java, ou tout en c (GTK, QT), moi j'te conseil l'un des derniers. Fait tout en java, le rseau ressemble au reseau de C

je peux pas c'est pas ce qui est demandé, je dois faire le boulot entièrement en C, l'ig doit être faite en java c'est tout, sinon je crois que je vais le faire en mode shell avec un système de commandes genre "send" pour envoyer, "list" pour lister les membres...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed