Bonjour à tous
je suis débutante en java. Je voulais savoir si on peut faire appel à programme exe écrit en C++ dans du code java
si oui, merci de me dire comment???
Bonjour à tous
je suis débutante en java. Je voulais savoir si on peut faire appel à programme exe écrit en C++ dans du code java
si oui, merci de me dire comment???
Bonjour, ce que tu cherches est dans lahttp://java.developpez.com/faq/java/...icationExterne
Bonjour,
pour appeler un programme .exe quel que soit le langage:
pour appeler du code C, il faut utiliser JNI:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 java.lang.Runtime.exec(String[]);
http://java.sun.com/developer/online...CBook/jni.html
D'autres interactions programme java avec C sont possible comme d'utiliser des web-service ou du corba, mais c'est plus une architecture client-serveur.
merci pour vos réponses. Je vais tester et je vous tiens au courant
Si c'est une fonction en C ou C++ que tu veux appeler depuis java et non un .exe,
alors ton code C/C++ doit obligatoirement se trouver dans une DLL (ou .so sous unix).
Sinon il est imossible d'appeler une fonction d'un .exe.
Mais pour avoir tester JNI, y a pas plus chien et plus merdique
Si c'est de l'échange de donnée que tu veux faire entre les deux => fait du client/serveur par socket,
c'est plus simple. (ton serveur sera le programme en C/C++)![]()
Re,
j'ai testé de cette façon, mais rien ne se produit. est ce que je dois placer mon exe quelque part dans le projet car là, j'ai juste indiqué le chemin dans la commande
try {
Process proc = Runtime.getRuntime().exec("/home/nina/Test/ ./monProgramme -i BaseC.txt -a 700 -d 0 res.txt");
} catch (IOException e1) {
}
merci de m'aider
AkH...je ne veux pas écrire du code C++ dans du code java. je veux juster invoquer un prog C++ à s'executer
il y a pas un truc bizard ?
j'aurais soit mis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /home/nina/Test/ ./monProgramme
soit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ./monProgramme.exe
après j'en suis pas sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /home/nina/Test/monProgramme.exe
Déjà, faut pas préciser le folder dans le exec. Ou alors imaginons le folder complet), faut retirer ce sale espace qui traine au milieu.
Ensuite, çà:
C'est très très très mauvais. Si je donnais cours de java et qu'un de mes élève m'écrit çà, zéro pointé! Tu ignore purement et simplement l'erreur sans meme essayer de savoir ce que c'est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 } catch (IOException e1) { }
remplace par ceci
Et donne nous l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 } catch (IOException e1) { e1.printStackTrace(); }
Enfin, si ton application externe a besoin de données à tapper au clavier ou doit faire de l'output à l'écran, faut pas oublier qu'en java c'est à toi de le faire (récupération des input/output sur le Process retourné par exec)
toujours pas de solution....tchize, ça fait exactement une semaine que je mets à programmer en java (ce qui explique ma note "zéro)
mais je désespère pas : voilà l'erreur sachant que j'ai supprimé le vilain espace
Il ne trouve pas le chemin je ne comprends pas pourquoi???
java.io.IOException: Cannot run program "home/nina/Test/./monProgramme -i BaseC.txt -a 700 -d 0 res.txt": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at mv.QuitterMenu.actionPerformed(QuitterMenu.java:22)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 31 more
Partager