Bonjour,
est il possible d'executer une commande avec java?
si oui comment je peux executer la comande:
Quote:
regedit /E c:\MaBase.txt"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
Merci d'avance
Voici un morceau de code qui peut te permmettre d'effectuer
une commande.
Le soucis c'est que visiblement la JVM n'est pas capable d'aller
chercher les variables d'envrionnement system ce qui fait que
lorsque tu fais
runtime.exec("dir"); il pète une erreur.
Donc pour contourner tu lui donne le path complet
runtime.exec("C:\\WINDOWS\\.System32\dir.exe") s'il se trouve là:)
Bonne chance
C'est une plaisanterie ?
Quand tu lances une commandes avec Runtime.exec, si la commande est dans le PATH elle est lancée *par le système* car c'est ce que demande de faire Runtime.exec. La JVM n'a même pas besoin d'être au courant du PATH.
Ceci dit la JVM lit parfaitement le PATH. Par exemple lorsqu'elle doit charger une librairie native, elle ne peut le faire que lorsque la dite librairie est dans le PATH justement.
Il va même en pêter deux.
D'abord la première, parce que sous Windows dir ne peut pas être lancé, PATH ou pas. Le code correct est:
Ensuite la deuxième erreur. Ce lancement à l'emporte pièce est incorrect. Dès que le commande lancée émet un ou deux octets il y a un BufferOverflow des E/S. Pour que ça puisse marcher correctement en toute situation, il est impératif de procéder les E/S dans un thread. Au minimum, l'entrée, qui capte la sortie de la commande lancée Voici un code correct, extrait d'un article paru dans Programmez! 82
Tu peux essayer de code en lui donnant cmd.exe /c dir comme argument.
PS: Le code marche aussi sous Linux, mais dans ce cas tu lui donnes pas cmd.exe /c dir hein ? :lol:
Merci Niroken ton code ca tres bien marché
merci :D
Tant mieux si tu es contente, mais je suis navré, le code de Niroken est mal formé et ce qu'il a dit est complètement faux qui plus est, ce que tu peux vérifier si le coeur t'en dit, sur le site de Sun dans un tutorial relatif à Runtime.exec
Il est vrai qu'un code mal formé à base de Runtime.exec marche parfois. Mais tout le problème est dans le parfois. Parce que parfois pas.
Enfin bref... :evil:
bon frederic je sais pas koi dire mais je te remercie toi aussi pour tout l'effort que tu as fais pour bien repondre à mes questions qui etaient tout le temp enbetantes mais tu sais je suis à une etape d'accepter n'importe quel code tant qu'il marche et donne une reponse satisfaisante puisque le temps me presse et il ne me reste plus.
bref merci :wink:
"tant" qu'il marche... Mais peut être que le jour J il ne marchera pas ce code que tu as accepté.
Pourquoi tu n'as pas pris le mien qui est garanti marcher ? Moi je ne peux pas comprendre ce choix. Et pour reprendre ton expression, moi non plus je ne sais pas quoi dire.
Ca fait plusieurs fois que j'ai essayé de t'aider sur ce forum sur beaucoup de sujets. J'essaie mais je n'y arrive pas, car tu n'écoutes jamais ce que je peux te dire. Je dois avoir un mauvais fluide ou quelque chose comme ça :evil:
Ce n’est pas vrai car j'ai pris toutes tes remarques en considération, je l'ai tester et je l'ai utilisé aussi la plupart du temps.
Ce dernier code je l'ai enregistré afin de l'utiliser une autre fois en tout cas je suis désolée si je t'ai déçu.
J’ai d’autres questions n’hésite pas de me conseiller :wink: .
CQFD :lol:
Bonjour,
Je voudrais lancer depuis mon programme java la commande pour utiliser WSDL2java afin de créer mon stub.
j'ai bien récuperé ton code fredericmazue mais lorsque je le met dans eclipse il me sort une erreur sur la ligne :
j'ai pourtant bien les même libs. Je suis sous eclipse en jdk 1.4
une idée?
printf n'existe qu'à partir de jdk 1.5....
Ok merci c'est bien ce que je pensais :?
bon c'est pas grave du coup j'ai arrangé tout ca à ma sauce. En tout cas merci pour la réponse rapide.