Java appelant cmde Unix : Pb environnement

Le
Macache
Bonjour,

Je suis en train de développer une application Unix qui récupère une
partie de ses conditions d'utilisation par des variables d'environnement
(par exemple un PATH, des options d'impression).

Cette commande est susceptible d'être appelée par un programme java, qui
pourra éventuellement fixer lui-même les conditions d'utilisation (choix
entre plusieurs PATHs prédéfinis, ).

Le développeur de la partie java m'affirme qu'il n'est pas possible de
définir des variables d'environnement puis de lancer la commande Unix ;
il me demande donc de ne pas utiliser de variable d'environnement mais
de passer toutes les options au moyen des paramètres de la ligne de
commande !


Pour ma part, je vois au moins une solution - pas d'une élégance folle :

le programme java génère un fichier texte en shell ou en cshell pour
regrouper la définition des variables d'environnement et l'appel de
commande Unix :

#!/bin/csh
setenv MYPATH /home/user/dir1:/users/data2:/tmp
setenv PR_LVL 7
/usr/bin/batman $*

Au lieu d'exécuter la commande "batman", le programme java exécute le
c-shell.


Quelqu'un voit-il une autre solution ? Comment se débrouille-t-on quand
l'application Unix est un produit standard du commerce, non modifiable ?

Merci de vos réponses avisées.
Macache
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
sebastien mathy
Le #657507
Macache wrote:

Bonjour,

Je suis en train de développer une application Unix qui récupère une
partie de ses conditions d'utilisation par des variables d'environnement
(par exemple un PATH, des options d'impression).

Cette commande est susceptible d'être appelée par un programme java, qui
pourra éventuellement fixer lui-même les conditions d'utilisation (choix
entre plusieurs PATHs prédéfinis, ...).

Le développeur de la partie java m'affirme qu'il n'est pas possible de
définir des variables d'environnement puis de lancer la commande Unix ;
il me demande donc de ne pas utiliser de variable d'environnement mais
de passer toutes les options au moyen des paramètres de la ligne de
commande !


Pour ma part, je vois au moins une solution - pas d'une élégance folle :

le programme java génère un fichier texte en shell ou en cshell pour
regrouper la définition des variables d'environnement et l'appel de
commande Unix :

#!/bin/csh
setenv MYPATH /home/user/dir1:/users/data2:/tmp
setenv PR_LVL 7
/usr/bin/batman $*

Au lieu d'exécuter la commande "batman", le programme java exécute le
c-shell.


Quelqu'un voit-il une autre solution ? Comment se débrouille-t-on quand
l'application Unix est un produit standard du commerce, non modifiable ?



Je pense que le developpeur Java a raison. Tu dois offrir la possibilité de
passer des arguments en ligne de commande. Tous les programmes unix
statndard bien fait le permette. Par cntre rien ne t'empeche (et c'est meme
conseillé) si les arguments ne sont pas passés d'aller les chercher dans
les variables d'environnement.

Macache
Le #657506
sebastien mathy a écrit:


Je pense que le developpeur Java a raison. Tu dois offrir la possibilité de
passer des arguments en ligne de commande. Tous les programmes unix
statndard bien fait le permette. Par cntre rien ne t'empeche (et c'est meme
conseillé) si les arguments ne sont pas passés d'aller les chercher dans
les variables d'environnement.



Merci du commentaire - en l'occurence, je reçois déjà les paramètres
usuels par le biais des arguments, mais j'attends aussi un PATH qui peut
être constitué de 1 à 40 chaînes de caractères ; c'est lui que le
programmeur java souhaite envoyer sous forme de 1 à 40 arguments. J'ai
rarement vu de programme Unix standard se plier à ce genre de
contraintes (pas encore assez vécu, sans doute ?).

sebastien mathy
Le #657505
Macache wrote:

sebastien mathy aparamètre

Je pense que le developpeur Java a raison. Tu dois offrir la possibilité
de passer des arguments en ligne de commande. Tous les programmes unix
statndard bien fait le permette. Par cntre rien ne t'empeche (et c'est
meme conseillé) si les arguments ne sont pas passés d'aller les chercher
dans les variables d'environnement.



Merci du commentaire - en l'occurence, je reçois déjà les paramètres
usuels par le biais des arguments, mais j'attends aussi un PATH qui peut
être constitué de 1 à 40 chaînes de caractères ; c'est lui que le
programmeur java souhaite envoyer sous forme de 1 à 40 arguments. J'ai
rarement vu de programme Unix standard se plier à ce genre de
contraintes (pas encore assez vécu, sans doute ?).


oui effectivement ce n'est pas courant.
Il faut je pense passer qu'un seul paramètre avec les paths separé par : ou
un ;. Toi tu utilise le path systeme et tu concatenes la chaine passé en
paramètre. Ca devrais etre bon ca non?


Poster une réponse
Anonyme