J'ai des scénarios où j'ai un "agent" Java qui fonctionne sur plusieurs plates-formes (en particulier Windows, Solaris & AIX). Je voudrais factoriser les différences dans la structure du système de fichiers en utilisant des variables d'environnement dans la ligne de commande que j'exécute. Pour autant que je sache, il n'existe aucun moyen d'obtenir la méthode Runtime.exec()
pour résoudre/évaluer les variables d'environnement référencées dans la commande Chaîne (ou tableau de chaînes).Évaluation des variables d'environnement dans la commande exécutée par Java Runtime.exec()
Je sais que si le push vient à pousser, je peux écrire du code pour prétraiter la ou les chaînes de commande et résoudre les variables d'environnement à la main (en utilisant getEnv()
etc). Cependant, je me demande s'il y a une façon plus intelligente de le faire, car je suis sûr que je ne suis pas la seule personne à vouloir faire cela et je suis sûr qu'il y a des pièges dans la «mise en place» de ma propre implémentation.
Vos conseils et suggestions sont les bienvenus.
modifier: Je voudrais faire référence à des variables d'environnement dans la chaîne de commande en utilisant une notation cohérente telle que $ VAR et/ou% VAR%. Pas agité qui.
modifier: Pour être clair, je voudrais être en mesure d'exécuter une commande telle que:
perl $SCRIPT_ROOT/somePerlScript.pl args
sur les hôtes Windows et Unix en utilisant Runtime.exec()
. Je spécifie la commande dans le fichier de configuration qui décrit une liste de tâches à exécuter et il doit être capable de travailler sur plusieurs plates-formes, d'où ma pensée qu'une variable d'environnement serait utile pour factoriser les différences de système de fichiers. J'espère que ça aide à le clarifier.
Merci. Tom
Comment essayez-vous de les résoudre? En utilisant le shell shell Unix de '$ VAR' dans la chaîne de commande que vous passez à' Runtime.exec() '? –
@Kevin - oui. Idéalement. –