Un code java pour appelé un executable en visualc++
cs_bounekhla
Messages postés1Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention17 juin 2008
-
5 mai 2008 à 01:24
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 2010
-
5 mai 2008 à 13:51
bonjour, je veux avoir des propositions concernant des codes sources en java . je veux réaliser une application avec java mais j'ai besoin d'une partie qui est déja faite avec visual c++.
aidez moi svp comment je peux faire pour programmer sa. je veux programmer en java et appeler un executable en visual c++.
aidez moi s'il vous plait.
A voir également:
Un code java pour appelé un executable en visualc++
Tu peux utiliser JNI ou bien JNA pour faire ça. Il me semble qu'il y a au moins un tutoriel sur JNI sur ce site. JNA est plus simple. A toi de voir. Bon courage.
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201018 5 mai 2008 à 11:20
même les résultats s'ils sont des affichages sur console peuvent être récupérés par le biais de l'InputStream du programme lancé :
processus = Runtime.getRuntime().exec(...);
InputStream = processus.getInputStream();
Oui mais s'il a vraiment envie de récupérer énormément de résultats, niveau performance c'est mieux alors d'envisager l'utilisation de JNI ou JNA, c'est surtout plus propre.
de toute façon un exec
est la porte ouverte aux trous de sécurités (ça reste et restera
toujours mon point de vue...), donc je rejoins [auteur/GOUESSEJ/684669.aspx gouessej]
quand à l'utilisation de JNI et/ou JNA.
Cependant, vu le but de
la question qui se porte sur MS VC++, il n'y a ici aucun intérêt
d'utiliser JNI/JNA et pour être franc il n'y a AUCUN intérêt de
faire du java quand on se focalise sur une application MS Windows...
- Cela rend le code et l'application non portable.
– Tu imposes aux utilisateur (et à
toi même) l'utilisation d'une JVM sans raisons, alors que C# ou
encore VB suffit amplement voir même mieux du fait que tu peux très
simplement récupérer les handles windows (HWND) des composant de MS
VC++ et donc gagner un temps de traitement et ne manipulation non
négligeable
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Imagine ton exécutable contient un malware. Tu n'as aucun contrôle là-dessus depuis ton code Java. Si tu le lances, je te laisse imaginer les conséquences. Sous Linux, si tu maintiens bien ta machine, tu ne risques pas grand chose. Je pense que Twinuts saura t'expliquer ça mieux que moi.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 5 mai 2008 à 13:42
Salut,
heu je te l'ai déjà expliqué sur un ancien poste du meme genre... (ICI)
Bon je colle ce que je t'ai déjà expliqué ^^ :
Les appels systèmes sont la porte ouverte aux trous de sécu dans une
application... avec ça tu n'as aucun moyen de distinguer le process
d'origine d'un process rootkité, de plus rien de ne garanti (sauf
peut-être le md5sum du binaire à exécuter mais ça reste relativement
lourd (pour les gros binaires)) que l'application que ton process
exécute soit la bonne et non un beau virus ou autre merdouille du genre
(au passage si ton client exécute ton application (qui appel un
programme malveillant à son insu ) pour lui, c'est toi le coupable...).
Bref
ce que je veux dire par là c'est tant que tu peux ne pas utiliser les
appels aux process externe, fait le, ce même si tu dois écrire des api
natives... sinon essai le plus possible de pré calculer les hash md5
des application à exécuter, afin de vérifier l'intégrité de celle-ci...
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."