IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[Runtime] variable d'environnement sous unix


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut [Runtime] variable d'environnement sous unix
    Bonjour,

    j'ai un chemin en unix qu'est désigné par la variable d'environnement suivante $MY_APPLI, or quand je fais dans mon code java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p = new PrintWriter(new FileOutputStream(fileName, true));
    avec fileName=$MY_APPLI/mon_fichier.dat

    il dit qu'il reconnait pas le chemin

    MERCI

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    regarde la javadoc pour la méthode getEnv de la classe System.

  3. #3
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut
    il dit que getenv est depricated et il l'execute pas en plus.


    j'ai essayé de contourné ça en mettant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String[] cmdarray = {"/bin/ksh", "-c", "echo", "$IN_APPLI"};
     
    		String ligne;
    	      Process processus = Runtime.getRuntime().exec(cmdarray);
    	      InputStreamReader flux_entree = 
    	                    new InputStreamReader(processus.getInputStream());
    	      BufferedReader entree = new BufferedReader(flux_entree);
     
    	      while ((ligne = entree.readLine()) != null) {
    	        System.out.println(ligne);
    	      }} catch (Exception e) {
    		// TODO: handle exception
    		e.printStackTrace();
    	}
    mais ça m'affiche rien du tout, sachant que quand je fais dans le shell:
    ça m'affiche bien le chemin contenu dans cette variable

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    getenv() a été rétabli dans Java 5.0...


    Sinon avec le shell, l'option -c n'interprête que le paramètre suivant qui doit correspondre à une ligne de commande entière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] cmdarray = {"/bin/ksh", "-c", "echo $IN_APPLI"};
    Sinon quelques remarques :
    • Pense à traiter les autres flux dans des threads séparés (ou bien à les fermer avant de lire la sortie du programme), sinon cela pourrait te poser des surprise (deadlock).
    • Utilises des try/finally pour libérer tes ressources
    • /bin/ksh devrait être remplacé par /bin/sh : tous les systèmes unix doivent posséder /bin/sh (même si il renvoit souvent vers un autre shell). Cela améliore un peu la portabilité (même si elle reste confiné aux système Unix)



    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    	try {
    		String[] cmdarray = { "/bin/sh", "-c", "echo $IN_APPLI" };
     
    		String ligne;
    		Process processus = Runtime.getRuntime().exec(cmdarray);
     
    		// Fermeture des flux inutilisés :
    		processus.getInputStream().close();
    		processus.getErrorStream().close();
     
    		BufferedReader entree = new BufferedReader(
    				new InputStreamReader(processus.getInputStream()));
    		try {
    			while ((ligne = entree.readLine()) != null) {
    				System.out.println(ligne);
    			}
    		} finally {
    			entree.close();
    		}
    	} catch (Exception e) {
    		// TODO: handle exception
    		e.printStackTrace();
    	}
    a++

  5. #5
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut
    Un trés grand merci adiGuba ça marche, encore mille merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définir une variable d'environnement sous ubuntu
    Par sheura dans le forum Administration système
    Réponses: 6
    Dernier message: 24/03/2008, 10h17
  2. Variable d'environnement sous windows server 2003
    Par malikoo dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 28/02/2008, 21h49
  3. variable d'environnement sous apache2
    Par stkwawa dans le forum Apache
    Réponses: 1
    Dernier message: 05/12/2007, 12h30
  4. Réponses: 1
    Dernier message: 18/09/2007, 16h07
  5. [Runtime] Variable d'environnement
    Par eclesia dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2007, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo