bonjour,
je souhaite invoquer une commande shell depuis mon programme java. Pour info, mon OS est une debian etch, j'utilise la jvm et le jdk de sun en version 6, packagés par les gens de debian.
Ce que j'utilise, c'est donc un :
Runtime.getRuntime().exec(command);
C'est très bien, seulement, le programme que je veux invoquer est un 'at'... pour planifier une exécution plus tard. Le problème c'est que 'at' ne sait lire des commandes que sur l'entrée standard ou dans un fichier. Ca m'embete un peu d'écrire ma commande dans un fichier à chaque fois que je veux invoquer quelque chose, je voudrais utiliser l'entrée standard. Ce que j'ai donc fait, c'est utiliser une redirection avec un echo :
echo "echo hello > /tmp/test.log 2>&1" | at now + 1 minute
Cette commande fonctionne bien directement dans bash, mais lorsque j'exécute cette commande avec le runtime...exec() :
1 2
| Runtime.getRuntime().exec("echo \"echo hello > "
+ "/tmp/test.log 2>&1\" | at now + 1 minute"); |
mon fichier /tmp/test.log reste vide.
Je pense qu'il doit y avoir un petit soucis avec les pipes et les redirections de flux standards, ça ne doit pas etre possible, tout du moins aussi facilement...
Il s'agit finalement autant d'une question système que d'une question java...
Partager