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

Java Discussion :

appeler la variable d'environnement dans un programme java


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut appeler la variable d'environnement dans un programme java
    Bonjour tout le monde,
    mon problème est le suivant: je cherche à appeler la variable d'environnement %USERNAME% et pouvoir le mettre dans un fichier .txt. voila mon bout de code mais j'arrive pas à intégrer la valeur de la variable d'environnement:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
     
     
    public class UpdateFile 
    {
    	public UpdateFile() throws IOException
    	{
     
    	File entree = new File("annu.txt");
    	File sortie = new File("temp.txt");
    	BufferedReader br = new BufferedReader(new FileReader(entree));
    	BufferedWriter bw = new BufferedWriter(new FileWriter(sortie));
     
    	String ligne = "";
     
    		while ((ligne = br.readLine()) != null)
    		{
    			String nom = null;
    			Integer num = null;
     
    			if(ligne.startsWith(nom))
    			{
    				bw.write(nom+":"+num+"\n");
    				bw.flush();
    			}
    			else
    			{
    				bw.write(ligne+"\n");
    				bw.flush();
    			}
    		}
    		bw.close();
    		br.close();
     
    		entree.renameTo(new File("poubelle"));
    		sortie.renameTo(new File("annu.txt"));
    		entree.delete();
    	}
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    import java.io.File;
    import java.io.IOException;
     
    public class Main 
    {
    	public static void main(String [] args) throws IOException
    	{
    		UpdateFile fichier= new UpdateFile();
    	}
     
    }

    Ps: le fichier que je veux modifier et bien sur annu.txt

    Merci d'avance pour votre aide et votre suggestion

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Tu peux récupérer le nom de l'utilisateur via la propriété : user.name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.getProperty("user.name");
    Sinon pour récupérer une variable d'environnement, tu peux utiliser la méthode System.getenv()

    A plus

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    bonjour,

    Merci pour ta réponse George7 effectivement c'est la méthode qu'il fallait ajouté.

    La je sais vraiment pas ce qui se passe, normalement mon code devait récupérer un fichier, le lire et puis ajouter une ligne et le modifier. voici mon code:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    public class UpdateFile 
    {
    	public UpdateFile() throws IOException
    	{
    	//entree = fichier d'entrée
    	File entree = new File("C:\\Jonas\\conf\\jonas-realm.xml");
     
    	//sortie = fichier de sortie
    	File sortie = new File("temp.xml");
     
    	BufferedReader br = new BufferedReader(new FileReader(entree));
     
    	BufferedWriter bw = new BufferedWriter(new FileWriter(sortie));
     
    	String ligne = "";
    	String ligne2 = "";
     
    		while ((ligne = br.readLine()) != null || (ligne2= br.readLine()) != null)
    		{
    			String UserName = System.getProperty("user.name");
     
    			if(ligne.endsWith("memrlm_ez\">"))
    			{
    				if(ligne2.startsWith("<users>"))
    				{
    					String LigneAjoutee =("<user name= \""+ UserName + "\" password=\"{MD5}68Uig5eIl3Iz/BB7uW8A0w==\" groups=\"jonas_users\"/>");
    					bw.write(LigneAjoutee);
    					bw.flush();
    				}
    			}
    			else
    			{
    				bw.write(ligne+"\n");
    				bw.flush();
    			}
    		}
    		bw.close();
    		br.close();
     
    		entree.renameTo(new File("Corbeille"));
    		sortie.renameTo(new File("C:\\Jonas\\conf\\jonas-realm.xml"));
    		entree.delete();
     
    	}
     
    }
    et voilà ce que je reçoit comme erreur:
    Exception in thread "main" java.io.FileNotFoundException: C:\Jonas\conf\jonas-realm.xml (Le fichier spécifié est introuvable)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.io.FileReader.<init>(FileReader.java:55)
    at com.nvd.Jonas.installer.update.UpdateFile.<init>(UpdateFile.java:21)
    at com.nvd.Jonas.installer.update.Main.main(Main.java:10)
    en fait il cherche le fichier et le supprime a ce qui parait, après il le retrouve plus dans mon répertoire.

    est ce que quelqu'un pourra me trouver la faille


    Merci d'avance

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    c'est bon j'ai pu réglé le problème sans problème, voila le nouveau code pour ceux qui sont intéressés:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    public class UpdateFile 
    {
    	public UpdateFile() throws IOException
    	{
     
    		File entree = new File("C:\\jonas-realm.xml");
    		File sortie = new File("C:\\jonas-realm_new.xml");
     
    		BufferedReader br = new BufferedReader(new FileReader(entree));
    		BufferedWriter bw = new BufferedWriter(new FileWriter(sortie));
     
    		String ligne = "";
    		String ligne2 = "";
    		String UserName = System.getProperty("user.name");
     
    		String LigneAjoutee =("\t\t<user name=" + UserName);
     
    		while ((ligne = br.readLine()) != null)
    		{		
    			if(ligne.endsWith("memrlm_ez\">"))
    			{
    				bw.write(ligne+"\n");
    				while ((ligne2 = br.readLine()) != null)
    				{
    					if(ligne2.endsWith("<users>"))
    					{
    						//System.out.println(ligne2);
    						bw.write(ligne2+"\n");
    						bw.write(LigneAjoutee+"\n");
    						bw.flush();
    					}
    					else
    					{
    						bw.write(ligne2+"\n");
    						bw.flush();
    					}
    				}
    			}
    			else
    			{
    				bw.write(ligne+"\n");
    				bw.flush();
    			}
    		}
     
    		bw.close();
    		br.close();		
    	}
     
    }
    mnt pourle nouveau fichier créé "jonas-realm_new.xml" j'aimerais bien lui passer le nom du fichier source et supprimer ce dernier, soit avoir une nouveau fichier avec "jonas-realm.xml" mais avec la ligne ajoutée, pour ce faire j'ai ajouté le code suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    entree.delete();
    sortie.renameTo(new File ("C:\\jonas-realm.xml"));
    malheureusement le code ne marche pas, est ce que quelqu'un pourrait m'aider?

    Merci d'avance

    Amicalement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    kikoo,

    c'est toujours moi, en fait j'ai pu trouver la solution pour ceux qui sont intéressés:

    il fallait juste après la suppression de l'ancien fichier, créer le nouveau avant de le renommer, ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    entree.delete();
    sortie.createNewFile();
    sortie.renameTo(new File ("C:\\jonas-realm.xml"));
    voili voilou,

    A bientôt tout le monde

    Amicalement

Discussions similaires

  1. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25
  2. variable d'environnement dans le fichier manifest.mf
    Par unmecenor dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2006, 17h40
  3. Appel d'une dll (c++) dans un programme c++
    Par cout dans le forum C++
    Réponses: 2
    Dernier message: 01/06/2006, 14h52
  4. [log4j]Appeler une variable d'environnement
    Par nana1 dans le forum Logging
    Réponses: 5
    Dernier message: 08/12/2005, 12h22
  5. [.NET]Modifier les variables d'environnement dans...
    Par GusS dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/02/2005, 16h25

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