2009-09-11 6 views
0

Dans l'usage programmatique des commandes CLI (en Java sous Linux), voulez-vousPATH et l'utilisation programmatique?

  • compter sur ces commandes est sur la voie, ou
  • spécifier le chemin absolu de chaque commande dans le code?

Différente pour les commandes "standard", par ex. "ls", vs. commandes non-standard?

Addendum: Par "dans le code", je ne voulais pas dire "codé en dur". Avoir les chemins des commandes configurables serait bien sûr la voie à suivre.

Répondre

4

Aucun (!). Je fournirais une configuration, qui peut être aussi triviale qu'un fichier de propriétés.

par exemple.

command.ls = /bin/ls 

etc. Ce qui précède est simple à mettre en œuvre, et très facile à changer/remplacer selon les besoins. Je serais méfiant de compter sur le chemin pour tous les scénarios sauf les plus simples.

+0

+1 Je suis d'accord. En supposant que le chemin vers 'ls' dans un script shell est une chose, enterré dans une application est quelque chose d'autre. Java rend l'utilisation des fichiers de propriétés facile. Plus votre application est diffusée, plus cela devient important. Il est trivial de modifier un fichier de propriétés, mais une hypothèse codée en dur dans votre application est un point d'arrêt pour un utilisateur final. Lorsque vous livrez des produits, vous voulez qu'ils «fonctionnent» – DaveParillo

+0

Je suis entièrement d'accord. L'utilisation d'une approche de fichier de propriétés est la bonne chose à faire. Mais il relève encore de la responsabilité de l'application Java. –

0

Si le chemin absolu est un chemin standard comme dans/usr/bin,/usr/sbin etc, j'utiliserais ceux-ci, sinon je ferais un qui sur le nom de la commande et utiliser la sortie de cela.

Questions connexes