L'invocation du shell à partir de java, c'plaintes “stty: standard d'entrée: argument non Valide”
J'invoque une commande shell par classe de Processus de java et il imprime
"stty: standard input: Invalid argument"
peu importe si la commande est bonne ou pas (normal sortie de commande shell est montré trop). Si j'exécute la commande shell shell, aucun message d'erreur est affiché.
La commande est quelque chose comme ceci: {"/bin/csh", "-c", "echo hello"}
Dans un tel cas, un exemple de code serait d'une grande aide.
Je n'ai rien, mais des choses très simples à invoquer "echo bonjour" à partir de java. Ce code acutually fonctionne ok il y a plusieurs semaines, donc je pense que quelque chose de mal avec mon bash récemment, pas de java
je crois qu'il y a des façons de Java pour exécuter des fonctions du système d'exploitation et il n'est pas nécessaire d'appeler des commandes du système. quelle commande appelez-vous que Java ne dispose pas d'un module pour qui?
Eh bien, je veux créer une coque incorporés dans java. L'utilisateur peut entrer une commande shell et java exécute et retour stdout/stderr pour java gui.
Je n'ai rien, mais des choses très simples à invoquer "echo bonjour" à partir de java. Ce code acutually fonctionne ok il y a plusieurs semaines, donc je pense que quelque chose de mal avec mon bash récemment, pas de java
je crois qu'il y a des façons de Java pour exécuter des fonctions du système d'exploitation et il n'est pas nécessaire d'appeler des commandes du système. quelle commande appelez-vous que Java ne dispose pas d'un module pour qui?
Eh bien, je veux créer une coque incorporés dans java. L'utilisateur peut entrer une commande shell et java exécute et retour stdout/stderr pour java gui.
OriginalL'auteur solotim | 2010-03-29
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser le
-f
option de csh pour désactiver la lecture de la .chsrc et .fichiers de connexion:pourquoi pas? de toute façon, si ça fonctionne, c'est une indication que l' .cshrc ou .script de connexion est d'essayer de régler le terminal sans vérifier s'il y en a un. La prochaine étape devrait être d'ajouter cette case pour les scripts...
OriginalL'auteur Carlos Heuberger
Vous en invoquant le
stty
commande à partir de votre.profile
, ou.bash_profile
. Vous aurez pour rediriger son erreur standard à/dev/null
.stty ne peut pas traiter avec la pseudo-tty que Java fournit dans les bombardements.
Il n'a pas d'importance ce qu'il représente. Invoquant stty dans un contexte où il n'y a pas d'ats, comme un exec avais processus, est faux. Vous ne pouvez pas le faire.
OriginalL'auteur Jonathan Feinberg
Dit-la documentation pour java.lang.Processus:
Peut-être vous voudriez le java.lang.ProcessBuilder, à la place.
OriginalL'auteur msw
Avez-vous regardez ici.
J'ai réussi à exécuter certaines commandes comme cette
OriginalL'auteur Shervin Asgari