Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Expériences d'utilisation de Java avec C

0 views
Skip to first unread message

Pierre787

unread,
Oct 16, 2009, 4:39:55 AM10/16/09
to
Bonjour,

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

Albert

unread,
Oct 16, 2009, 6:14:06 AM10/16/09
to
Le 16/10/2009 10:39, Pierre787 a �crit :

es tu s�r que tu peux appeler du Java depuis du C avec JNI ? Je crois
que c'est uniquement le contraire...

1 connu

unread,
Oct 16, 2009, 7:03:13 AM10/16/09
to

"Pierre787" <n...@email.com> a �crit dans le message de news: 4ad8315d$0$1139$426a...@news.free.fr...

Lancer le programme C depuis java et dialoguer avec celui (par ex avec fichier ou par socket)

georges

unread,
Oct 16, 2009, 5:36:22 PM10/16/09
to
Pierre787 wrote:
> Bonjour,
>
> 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

????
Tous les jeux 3D du march� sont en C et C++

Samuel Devulder

unread,
Oct 17, 2009, 3:53:58 AM10/17/09
to
Albert a �crit :

> 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.

Alexandre Bacquart

unread,
Oct 17, 2009, 5:11:31 PM10/17/09
to
Pierre787 wrote:
> Bonjour,
>
> 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.

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

Albert

unread,
Oct 19, 2009, 3:34:34 AM10/19/09
to
Le 17/10/2009 09:53, Samuel Devulder a �crit :

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 ?

Pierre787

unread,
Oct 21, 2009, 3:12:12 AM10/21/09
to

"georges" <geo...@georges.nospam> a �crit dans le message de
news:hbaou2$if4$1...@aioe.org...


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

Samuel Devulder

unread,
Oct 21, 2009, 2:23:37 PM10/21/09
to
Albert a �crit :

> 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.

0 new messages