Java exécuter le programme en ligne de commande

J'ai un petit problème avec l'exécution d'un outil de ligne de commande. Je veux exécuter UnRAR.exe de WinRAR. Je fais comme ça:

Process process = runtime.exec("\"" + unrarPath + "\"" + " x -kb -vp " + "\"" + fileName + "\"", null, f.getParentFile());

Mon problème est que le fichier compressé est protégé par mot de passe. Si j'exécute la commande dans ma console, je suis invité pour un mot de passe. Si je laisse Java exécuter le programme se termine juste et n'attend jamais pour une entrée de l'utilisateur (mot de passe).

J'ai essayé d'écrire dans le processus outputstream mais cela ne fonctionne pas. Est-ce que je besoin de savoir sur le comportement des programmes en ligne de commande exécutée dans "différents" milieux?

EDIT: Peut-être que je n'étais pas assez claire. Ma question est: Est-il possible d'interagir avec un programme en ligne de commande avec Java?

J'ai ajouté une nouvelle réponse et supprimé vieux. J'espère que de nouvelles réponse devrait vous satisfaire.

OriginalL'auteur T3rm1 | 2012-02-19