Je souhaite mettre � jour de vieux programmes cod�s en C sous Linux en y
int�grant une interface graphique �volu�e et de la 3D. Sachant que le C
n'est pas le langage le plus adapt� pour ce genre de t�che, je me tourne
donc vers une autre solution. N'�tant pas adepte du C++ mais plut�t de Java,
je pense � utiliser des appels de m�thodes Java via l'interface JNI. Bien
s�r, je pourrais tout recoder en Java mais par manque de temps, je pr�f�re
une solution de transition dans l'imm�diat.
On parle relativement peu de ce genre de cas sur le web, le syst�me JNI avec
des appels de m�thodes Java depuis des programmes Linux compil�s en C
fonctionne-t-il bien ? Y-a-t il d'autres possibilit�s comme par exemple
utiliser .NET sous Linux avec Mono ? Comment les deux se comparent ? A noter
que je dispose d'outils qui me permettent d'exporter des javabeans d'objets
3D mod�lis�s pr�ts � l'emploi. Sinon, .NET permet aussi l'int�gration de 3D
dans l'interface graphique, j'h�site donc entre les deux (Java et C# ne sont
pas tr�s diff�rents).
Sinon, y a-t-il une autre possibilit� diff�rentes de celles-ci ?
Merci de vos retours,
Pierre
es tu s�r que tu peux appeler du Java depuis du C avec JNI ? Je crois
que c'est uniquement le contraire...
Lancer le programme C depuis java et dialoguer avec celui (par ex avec fichier ou par socket)
????
Tous les jeux 3D du march� sont en C et C++
> es tu s�r que tu peux appeler du Java depuis du C avec JNI ? Je crois
> que c'est uniquement le contraire...
Non non c'est bidirectionnel. D'ailleurs gr�ce � JNI on peut appeler du
java depuis autre chose que du C. Ainsi par exemple, personnellement en
passant avec le JNI j'arrivais � appeler du java depuis smalltalk
(visualworks) il y a quelques temps: les objets javas se m�laient tr�s
bien aux objets smalltalk.
Pour une interface graphique en 3D, ce n'est pas une question de langage
mais de biblioth�que(s). Nul doute que la norme C ne suffira pas. Mais
de l� � dire que ce n'est pas le langage le plus adapt�...
Dans le jeu vid�o 3D (ceux qui justifient que tu offres la clim � un tas
de silicone conditionn�), on utilise en majorit� C ou C++
(rigoureusement parlant, c'est plus souvent un mix inf�me des deux, mais
ces deux langages sont tr�s li�s) car c'est un langage syst�me justement
plus adapt� pour tirer le meilleur parti du CPU qui se tape encore pas
mal de calculs, m�me avec les derni�res cartes acc�l�ratrices que tout
le monde n'a pas, loin de l�. Une interface 3D, c'est bien gentil, mais
si �a rame ?
> N'�tant pas adepte du C++ mais plut�t de
> Java, je pense � utiliser des appels de m�thodes Java via l'interface
> JNI. Bien s�r, je pourrais tout recoder en Java mais par manque de
> temps, je pr�f�re une solution de transition dans l'imm�diat.
>
> On parle relativement peu de ce genre de cas sur le web, le syst�me JNI
> avec des appels de m�thodes Java depuis des programmes Linux compil�s en
> C fonctionne-t-il bien ? Y-a-t il d'autres possibilit�s comme par
> exemple utiliser .NET sous Linux avec Mono ? Comment les deux se
> comparent ? A noter que je dispose d'outils qui me permettent d'exporter
> des javabeans d'objets 3D mod�lis�s pr�ts � l'emploi.
>
> Sinon, .NET permet aussi l'int�gration de 3D dans l'interface graphique,
> j'h�site donc entre les deux (Java et C# ne sont pas tr�s diff�rents).
>
> Sinon, y a-t-il une autre possibilit� diff�rentes de celles-ci ?
Utiliser OpenGL tout en restant en C ? Personnellement, je n'irais pas
tout compliquer et ajouter des barri�res techniques (que C n'a pas) en
utilisant un autre langage sans une bonne raison pour le faire (et sans
m�me conna�tre la nature de ces barri�res).
--
Alex
mais tous les thread system de Java et la jvm tout enti�te ne peut pas
fonctionner... ou alors faut la lancer au d�but du programme appelant ?
Perso, le C++, je n'ai jamais accroch�, je pr�f�re largement Java comme
langage objet. Par contre, le C ne me pose aucun probl�me mais comme dit
auparavant, pas s�r que ce soit la meilleure solution... Il ne s'agit pas
d'un jeu mais d'un soft multim�dia bien plus simple faisant intervenir des
objets 3D. Je ne souhaite pas non plus r�inventer la roue... Il existe pas
mal de solutions 3D sous Java qaui sont infiniment plus rapides � mettre en
oeuvre que de tout coder en C pour faire de la 3D. Et m�me avec des
biblioth�ques pr�tes � l'emploi C, r�aliser une interface graphique IHM
complexe, faire de la navigation 3D, etc je pense que �a me prendra bien
plus de temps � tout faire en C que sous Java.
Bonne journ�e,
Pierre
> mais tous les thread system de Java et la jvm tout enti�te ne peut pas
> fonctionner...
Pourquoi donc?
> ou alors faut la lancer au d�but du programme appelant ?
Pourquoi donc?
Ne te compliques pas trop la vie. Ca marche impec. Il suffit de faire
l'experience. J'ai m�me r�ussi � faire du SWT avec ce systeme en
smalltalk. Bref.. ca marche m�me avec du java qui embarque du JNI et des
DLL planqu� dans un .JAR... bref...
Il n'y a pas de raisons que ca marche pas pour la simple raison que ca
fonctionne: tu peux appeller du java depuis le C et lyc�e de versailles :)
sam.