java : appeler des methodes d'un programme en C

java : appeler des methodes d'un programme en C - Java - Programmation

Marsh Posté le 15-03-2007 à 13:47:36    

Bonjour,
 
J'expose mon problème, nous avons un programme écrit en C++ et qui est le noyau d'un "jeu d'échec". Je dois créer une interface graphique qui doit être portable, j'ai choisi et développé une interface en java applet.
Maintenant je dois faire la relation entre les deux programmes. Pour simplifier la relation j'utilise des fichiers textes. Un fichier texte représentera le jeu en cours et le programme C doit recuperer ce fichier pour le charger.
 
Comment et quelles sont les meilleures solutions qui s'offrent à moi pour invoquer le programme en C ?
Si vous avez d'autres idées je suis preneur.
 
Merci d'avance pour votre aide
 
Louis

Reply

Marsh Posté le 15-03-2007 à 13:47:36   

Reply

Marsh Posté le 15-03-2007 à 13:53:54    

java applet ... une belle usine à Gaz avec un serveur web qui fait tourner le C++ et une applet java ...
 
non sérieusement, utilise un toolkit graphique portable C++ et on en parle plus (Qt, GTKmm, etc)

Reply

Marsh Posté le 15-03-2007 à 14:28:56    

En fait il s'agit d'un projet que l'on doit faire dans le cadre de notre cursus scolaire.
Nous avons deja passer une semaine à developper l'interface graphique en java et notre tuteur reste certain que l'on peut continuer dans ce sens avec les fichiers textes.
 
En gros il faut quelque chose de fonctionnel, on ne regarde pas spécialement la rapidité du programme.
Il faut que ce soit portable (d'où l'applet java).
 
Tu pourrais nous aider ?

Reply

Marsh Posté le 15-03-2007 à 14:32:21    

le coup des fichiers textes, c'est une blague ...
Il faut au minimum utiliser des sockets / pipe.
 
l'applet java ... mais tu ne sais même pas ce que c'est. une applet java, c'est un morceau de java qui tourne dans ton navigateur internet. et le programme C++ il est où dans l'histoire ...

Reply

Marsh Posté le 15-03-2007 à 14:42:39    

Nous ce que nous propose le tuteur est que le programme C++ charge ses données de jeu via un/plusieurs fichiers textes, après l'interface java se charge décrire dans les fichiers textes le jeu actuel, ensuite on invoque la bonne méthode en C (via JNI peut etre ?) qui va renvoyer le resultat du traitement (soit ok si le deplacement est possible, ou autre chose message d'erreur si ce n'est pas bon) et nous on doit s'arranger pour lire la réponse.
 
Je sais que ce n'est pas très clair et pour nous non plus c'est donc la raison de mon message sur le forum, je voudrais avoir des solutions à mon problème ou des idées de résolution si possible merci :)
 
Louis

Reply

Marsh Posté le 15-03-2007 à 14:47:51    

Bah java c'est "portable", pourquoi vouloir passer par une applet ?


---------------
Töp of the plöp
Reply

Marsh Posté le 15-03-2007 à 15:25:25    

oui c'est vrai on voyait aussi le coté du "on peut l'executer del'éxtérieur" sachant que cela aurait disponible sur une page web.
De toute maniere même si l'on ne passe pas par l'applet java, nous avons toujours le même problème pour appeler les fonctions du programme c !?!?!?

Reply

Marsh Posté le 15-03-2007 à 15:37:46    

Bah JNI oui pourquoi pas ? t'as essayé ?


---------------
Töp of the plöp
Reply

Marsh Posté le 15-03-2007 à 15:42:40    

Je n'ai pas encore essayé, on m'a parlé des RMI aussi mais je sais pas si cela est compatible car en fait ca permet d'invoquer des methodes d'un programme java distant (donc deux machines java virtuelles) mais je sais pas si cela pourrait être mis en pratique avec un programme en C !?!?

Reply

Marsh Posté le 15-03-2007 à 15:46:02    

mais si tu passes par une Applet, ton code java tourne en local sur le poste de l'utilisateur qui lance ton applet avec son navigateur.
 
Donc comment tu comptes appeler ton code C qui est distant ?
 
socket et pipe, ça a l'air cool. Ecoute les conseils de Taz.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 15-03-2007 à 15:46:02   

Reply

Marsh Posté le 15-03-2007 à 16:29:40    

pose toi bien la question 'ou tourne le programme C'...

Reply

Marsh Posté le 15-03-2007 à 18:06:25    

En fait l'applet sera au même endroit que le programme C, même si l'applet  pourra être affiché via une page elle se trouvera sur le même serveur que celui du programme C. par contre on m'a dit que JNI n'est pas possible avec les applets.
 
Il faut que le programme en C ne soit pas trop modifié car il s'agit de la réutilisation en fait, on a d'un coté l'interface de l'autre le noyau et faut faire interagir les deux ensembles.
 
 
Je vais regarder du coté des sockets et pipe alors ...
 
Merci a vous

Reply

Marsh Posté le 15-03-2007 à 18:55:37    

on a dit tourne, pas est stocké.

Reply

Marsh Posté le 15-03-2007 à 19:00:24    

Si j'utilise JNI avec une appli java il va recuperer les methodes C et les interpreter tout simplement comme si c'était les méthodes d'un programme java !?!?!?
 
A aucun moment le programme en C ne peut tourner si ? je ne connais pas tout donc s'il existe une solution ou le programme en C tourne je veux bien la connaitre !

Reply

Marsh Posté le 16-03-2007 à 07:53:14    

mais, si tu l'appelles, il va bien tourner, non ?
 
le problème c'est que ton applet est stocké sur ton serveur, mais est lancée et tourne sur le navigateur de l'utilisateur et ne peut donc pas faire tourner ton programme C.
 
Si tu veux faire une applet, il te faudra un frontal à ton programme C. Je ne sais pas si RMI est possible avec les applets, mais pourquoi pas.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 16-03-2007 à 09:12:12    

Je pense que je vais continuer le dev du côté d'un programme java et non d'une applet pour que je puisse utiliser JNI.
 
A ce moment le programme va interpréter les methodes C comme des methodes java non ?

Reply

Marsh Posté le 16-03-2007 à 09:13:39    

allserv a écrit :

A ce moment le programme va interpréter les methodes C comme des methodes java non ?


non, il faut compiler le code C et le JNI va appeller les méthodes compilées.

Reply

Marsh Posté le 16-03-2007 à 09:17:41    

Mais la compilation est faite avant. En gros quand mon programme C est fini, je le compile, je crée les librairies et après c'est JNI qui va les appeler mais a aucun moment on devra avoir besoin d'un compilateur non ?

Reply

Marsh Posté le 16-03-2007 à 09:39:09    

allserv a écrit :

Mais la compilation est faite avant. En gros quand mon programme C est fini, je le compile, je crée les librairies et après c'est JNI qui va les appeler mais a aucun moment on devra avoir besoin d'un compilateur non ?


plus au moment de l'appel non


---------------
Töp of the plöp
Reply

Marsh Posté le 16-03-2007 à 10:02:03    

allserv a écrit :

Mais la compilation est faite avant. En gros quand mon programme C est fini, je le compile, je crée les librairies et après c'est JNI qui va les appeler mais a aucun moment on devra avoir besoin d'un compilateur non ?


 
une fois tout compilé, tu n'as plus besoin de compilateur, effectivement.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

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