fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005
-
17 août 2004 à 13:34
elwady -
6 juil. 2005 à 10:46
Salut,
Tout est dans le titre ! Ou presque... Je suis sous windows et je cherche à lancer un programme java (graphique) à partir d'un exécutable (C compilé). J'ai fait tout ça, mais le problème que est qu'il y a en permanence une fenêtre dos (cmd.exe) derrière le programme java.
Je fait l'appel dans mon programme C avec la fonction system(). Malheureusement j'ai appris que cette fonction lance forcement cmd.exe. J'ai essayé aussi avec exclp() mais dans ce cas j'ai une belle erreur windows !
Est-ce que quelqu'un a une idée ?
Fabrice
fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005 18 août 2004 à 17:51
Bien sûr ! Je crois que t'as oublié le C# aussi ! Ah là tu m'as bien fait rire :-) Quand tu auras (juste essayé) de faire une application portable dans ta vie on en reparlera... Ou à defaut essaie de rencontrer des gens qui ont en fait une !
Je ne veux pas partir dans une discussion sans fin, fait toi de l'expérience et tu changeras d'avis par toi même...
A bon entendeur
Fabrice
fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005 17 août 2004 à 14:22
Ben plus aucune ! Hier execlp ne fonctionnait pas, aujourd'hui j'essaie de reproduire l'erreur et c'est OK ! Par contre j'ai toujours une fenêtre dos (cmd.exe) qui vient s'afficher derrière et qui part aussi tôt. Est ce que quelqu'un sait comment ne pas obtenir cette fenêtre ? La question pourrait aussi être comment lancer un programme (écrit en C) uniquement en mode windows (pas de shell - cmd.exe)
Merci
Fabrice
fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005 18 août 2004 à 08:44
Salut à tous,
oui, j'ai aussi posé cette question sur CPPFrance car elle est à la limite des 2 langages.
Je ne connais pas tous en java mais un jar n'est pas exécutable... Dans mon cas j'ai une archive jar et mon exécutable C appelle cette archive.
vecchio56 -> quoi qu'on en dise, java n'est pas portable et il faut de toute façon développer une version du soft pour chaque platform supporté (notament pour tout ce qui est accès matériels). Je prévois de développer ce programme de lancement sous linux aussi (d'ailleurs beaucoup plus simple à faire).
Si quelqu'un un jour invente un langage portable, il gagnera beaucoup d'argent...
fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005 18 août 2004 à 20:40
oui merci, je connais le manifest mais souvent, pour ne pas dire toujours, une application n'est pas un unique .jar et est associée à divers autres libraries et exécutables...
Si on parle de langages portables, presque tous les langages (les plus utilisés) sont portables donc aucun intérêt de débattre sur ce sujet...
quand on me dit, je site :
Fais ce qu'on t'a dit sur CPPFrance, utilise ShellExecute. Quitte a faire un truc pas portable, autant le faire jusqu'au bout.
On parle bien d'application et non de langage, puisque je le rappelle il n'y a aucun interêt à parler de langage portable, je peux très bien programmer en VB sous linux ! ça n'a aucun Intérêt mais je peux le faire... Sachant que ce que je vais produire ne sera pas utilisable sous linux ! (c'est un exemple poussé à l'extrême, pour que vous compreniez bien)
Je vous indique au passage que j'ai quand même réussi à faire mon launcher portable en utilisant les directives de pré-compilation. Un seul regret : l'appel system fork() n'existe pas sous windows (super portabilité ! Et ce n'est pas la seule fonction)
Avec tout ça j'ai failli oublié de répondre à ta question. Pour moi une application portable est une application qui avec le même code source se compile sous toutes les platformes (Windows, linux, mac, ...). L'intêret est de maintenir un seul code au lieu d'un par plateforme...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 18 août 2004 à 20:42
fabrice_pi, je dois avouer que tu es assez marrant aussi dans ton genre:
"quoi qu'on en dise, java n'est pas portable"
Ce n'est pas parce qu'il faut développez une machine virtuelle pour chaque plate forme qu'il faut considérer que Java n'est pas portable. Bien sur que Java est portable.
J'entend par portable, 'qui peut êtr porté sur une autre plate forme sans modifier le code source'. Java va plus loin puisque c'est l''éxécutable' qui est portable.
De toute facon une éxécutable natif ne sera jamais portable, puisque les APIs sont différents en fonction des systemes.
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 20047 19 août 2004 à 10:22
" Quand tu auras (juste essayé) de faire une application portable dans ta vie on en reparlera... Ou à defaut essaie de rencontrer des gens qui ont en fait une !"
la question est : est-ce qu'une applet est une appli. :big)
fabrice_pi
Messages postés91Date d'inscriptionvendredi 12 mars 2004StatutMembreDernière intervention 5 août 2005 19 août 2004 à 19:42
Tu commences franchement à m'enerver : Je maintiens que le code java n'est pas portable, c'est à dire qu'il faut coder différement (le java) selon qu'on est sous windows, sous linux ou sous mac. vecchio56, grandit, ouvre toi l'esprit, code une application et tu verras les problèmes que ça pose !
On me paie très cher pour résoudre c'est problèmes de portabilité (c'est donc qu'ils existent ou que les gars qui me paient sont des crétins, puisque tout est portable et qu'il n'y a rien à faire !)
De toute facon une éxécutable natif ne sera jamais portable, puisque les APIs sont différents en fonction des systemes. -> Donc le code souce aussi :big)
wargre, non, une applet n'est pas une appli. Je pourrais dire que java est génial pour ça : les applets. Je n'ai pas encore trouvé de contre indication sur la portabilité des applets, ni même de compatibilté entre les browsers.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 19 août 2004 à 19:56
Je veux bien t'écouter et pardonne ma naïveté, mais dans ce cas la ca veut dire que Java ne tient pas ses promesses. A mon avis tu dois parler d'un domaine que je ne connais pas, parce que moi j'ai déj fait des trucs en Java et ca marche pareil sous Windows ou sous Linux.
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 20 août 2004 à 07:42
Un exemple parfait de ce que dit fabrice_pi, c'est l'emploi de différents LookAndFeel, selon l'OS de la machine : il faut, selon l'OS et le LookAndFeel, adapter la taille de la fenetre.