[LAJ1] getenv

Voir le sujet précédent Voir le sujet suivant Aller en bas

[LAJ1] getenv

Message  pbt le Sam 16 Fév 2008, 10:11

J'ai un service à demander à tous les heureux possesseurs d'un ordinateur équipé de MS Windows (dans n'importe quelle déclinaison).

Vous avez remarqué que dans le projet 1, je propose de sauvegarder les fichiers dans le répertoire home de l'utilisateur (généralement /home/login) ce qui est assez courant sous Linux. J'ai bêtement cru que la variable d'environnement HOME était également disponible sur MS Windows. Il semblerait que ce ne soit pas le cas ... où sauver ces fichiers nécesaires à l'application ?

Si je sauve dans le répertoire courant, c'est facile mais c'est loin d'être pratique ... j'aurai une liste de courses différentes en fonction du répertoire dans lequel je lance l'application :-( Donc j'aimerais savoir quel est le répertoire home par défaut sous Windows (je pense que c'est peine un peu perdue mais bon) afin d'éviter d'aller sauver ça dans C:\ ou C:\windows (<- ce qui n'est déjà plus portable d'une "saveur" windows à l'autre).

Donc je voudrais que quelques uns d'entre vous teste ceci à la maison;
Code:

...  (bla bla class et main)
System.out.println("HOME: " + System.getenv("HOME")) ;
System.out.println("HOMEDIR: " + System.getenv("HOMEDIR")) ;
System.out.println("HOMEPATH: " + System.getenv("HOMEPATH")) ;
System.out.println("USER: " + System.getenv("USER")) ;
... et un peu tout ce qui vous passe par la tête. Si la commande set existe sous Windows vous pouvez choisir dans l'ensemble des réponses un truc qui convient.

Merci à tous ...

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  cluigi le Sam 16 Fév 2008, 10:44

Code:
    public static void main(String[] args) {
       
        System.out.println("HOME: " + System.getenv("HOME")) ;
        System.out.println("HOMEDIR: " + System.getenv("HOMEDIR")) ;
        System.out.println("HOMEPATH: " + System.getenv("HOMEPATH")) ;
        System.out.println("USER: " + System.getenv("USER")) ;
        System.out.println("USERPROFILE"+System.getenv("USERPROFILE"));
       
        System.out.println("MES DOCUMENTS FR : " + System.getenv("HOME")+"\\Mes documents");
        System.out.println("MES DOCUMENTS EN : " + System.getenv("HOME")+"\\My documents");
    }

donne ceci :

Code:
HOME: C:\Documents and Settings\Admin
HOMEDIR: null
HOMEPATH: \Documents and Settings\Admin
USER: null
USERPROFILEC:\Documents and Settings\Admin
MES DOCUMENTS FR : C:\Documents and Settings\Admin\Mes documents
MES DOCUMENTS EN : C:\Documents and Settings\Admin\My documents

Wink


Dernière édition par le Sam 16 Fév 2008, 13:07, édité 1 fois

cluigi

Nombre de messages : 710
Age : 30
Prénom : Luigi
Statut : Ancienne star
Localisation : Bruxelles
Date d'inscription : 21/12/2006

http://stages2008.cluigi.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  pbt le Sam 16 Fév 2008, 10:51

Merci, j'ai oublié de demandé la version de Windows utilisée ... car évidemment ça change de l'une à l'autre sinon ce n'est pas drôle.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  cluigi le Sam 16 Fév 2008, 10:52

windows XP Wink

cluigi

Nombre de messages : 710
Age : 30
Prénom : Luigi
Statut : Ancienne star
Localisation : Bruxelles
Date d'inscription : 21/12/2006

http://stages2008.cluigi.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  the_red_skin le Sam 16 Fév 2008, 12:13

Mon output sous NetBeans 6 :

Code:

init:
deps-jar:
Created dir: C:\Users\Martin\JavaApplication1\build\classes
Compiling 1 source file to C:\Users\Martin\JavaApplication1\build\classes
compile:
run:
HOME: null
HOMEDIR: null
HOMEPATH: \Users\Martin
USER: null
USERPROFILEC:\Users\Martin
MES DOCUMENTS FR : null\Mes documents
MES DOCUMENTS EN : null\My documents
BUILD SUCCESSFUL (total time: 1 second)

Et j'ai MS Vista.

the_red_skin

Nombre de messages : 473
Age : 30
Prénom : Martin
Statut : Ancien
Localisation : Arlon
Date d'inscription : 08/02/2006

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  cluigi le Sam 16 Fév 2008, 13:09

donc un bon compromis xp-vista serait :
Code:
System.out.println("MES DOCUMENTS FR : " + System.getenv("USERPROFILE")+"\\Mes documents");

cluigi

Nombre de messages : 710
Age : 30
Prénom : Luigi
Statut : Ancienne star
Localisation : Bruxelles
Date d'inscription : 21/12/2006

http://stages2008.cluigi.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  yoda le Sam 16 Fév 2008, 17:59

bof, pas vraiment ... vu que ta cible va peut etre pas exister dans un windows chnois, anglais ou francais ...

deplus, mettre les donnees d'un programme dans My documents ... c'est bizarre ....

yoda

Nombre de messages : 1119
Age : 33
Prénom : Antoine
Statut : Ancien
Localisation : Bruxelles
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  pbt le Sam 16 Fév 2008, 18:41

the_red_skin a écrit:
Code:

MES DOCUMENTS FR : null\Mes documents
MES DOCUMENTS EN : null\My documents
Ah ça j'aime ...

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  mba le Sam 16 Fév 2008, 21:31

XP familiale

Code:
HOME: null
HOMEDIR: null
HOMEPATH: \Documents and Settings\Propriétaire
USER: null
USERPROFILEC:\Documents and Settings\Propriétaire
MES DOCUMENTS FR : null\Mes documents
MES DOCUMENTS EN : null\My documents

super cohérence
cheers

le HOMEPATH l'emporte

mba

Nombre de messages : 1493
Statut : prof
Localisation : Lessines
Date d'inscription : 07/10/2006

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  El_Turco le Sam 16 Fév 2008, 23:08

mba a écrit:XP familiale

Code:
HOME: null
HOMEDIR: null
HOMEPATH: \Documents and Settings\Propriétaire
USER: null
USERPROFILEC:\Documents and Settings\Propriétaire
MES DOCUMENTS FR : null\Mes documents
MES DOCUMENTS EN : null\My documents

super cohérence
cheers

le HOMEPATH l'emporte

Tout à fait.
C'est d'ailleurs ce que fait netbeans aussi.
On peut y apercevoir un dossier .netbeans afro

El_Turco

Nombre de messages : 896
Age : 30
Prénom : Adem
Statut : Ancien Industriel
Localisation : Bruxelles, Schaerbeek
Date d'inscription : 16/01/2007

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  nvs le Sam 16 Fév 2008, 23:28

l'exécution (depuis c:\) du jar (placé dans c:\tmp) produit par le source :
Code:
package testsysteme;

public class Main {
    public static void main(String[] args) {
        System.out.println("HOME: " + System.getenv("HOME")) ;
        System.out.println("HOMEDIR: " + System.getenv("HOMEDIR")) ;
        System.out.println("HOMEPATH: " + System.getenv("HOMEPATH")) ;
        System.out.println("USER: " + System.getenv("USER")) ;
       
        System.out.println("\nuser.name : "+System.getProperty("user.name"));
        System.out.println("user.home : "+System.getProperty("user.home"));
        System.out.println("repertoire courant : "+System.getProperty("user.dir"));
        System.out.println("mais comment recuperer le repertoire d'execution ?");
       
        System.out.println("\nos.name : "+System.getProperty("os.name"));
        System.out.println("os.arch : "+System.getProperty("os.arch"));
        System.out.println("os.version : "+System.getProperty("os.version"));
       
        System.out.println("\njava.vendor : "+System.getProperty("java.vendor"));
        System.out.println("java.version : "+System.getProperty("java.version"));
    }   
}
donne chez moi :
Code:
C:\>java -jar Tmp\TestSysteme.jar
HOME: null
HOMEDIR: null
HOMEPATH: \Documents and Settings\nico
USER: null

user.name : nico
user.home : C:\Documents and Settings\nico
repertoire courant : C:\
mais comment recuperer le repertoire d'execution ?

os.name : Windows XP
os.arch : x86
os.version : 5.1

java.vendor : Sun Microsystems Inc.
java.version : 1.6.0_03

voila peut-être une solution à tester sur *nix.

plus de détails sur les properties ici : http://java.sun.com/javase/6/docs/api/java/lang/System.html#getProperties() Smile

désolé pour l'url en long mais la balise url ne supporte pas les ()...

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  Legenyes le Sam 16 Fév 2008, 23:46

Juste pour le fun
NetBeans 5.5 sous Mac OS X 10.4

Code:
init:
deps-jar:
compile:
run:
HOME: /Users/tartarin
HOMEDIR: null
HOMEPATH: null
USER: tartarin

user.name : tartarin
user.home : /Users/tartarin
repertoire courant : /Users/tartarin/Documents/Cours/2/ALG/test/testMain
mais comment recuperer le repertoire d'execution ?

os.name : Mac OS X
os.arch : i386
os.version : 10.4.11

java.vendor : Apple Computer, Inc.
java.version : 1.5.0_13
BUILD SUCCESSFUL (total time: 8 seconds)

Legenyes

Nombre de messages : 626
Age : 31
Prénom : Sébastien
Statut : Ancien : Promo 2008-2009
Localisation : Braine-l'Alleud
Date d'inscription : 16/10/2007

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  nvs le Dim 17 Fév 2008, 02:16

toujours chez moi :
Code:
[nico@localhost disk]$ java -jar Tmp/TestSysteme.jar
HOME: /home/nico
HOMEDIR: null
HOMEPATH: null
USER: nico

user.name : nico
user.home : /home/nico
repertoire courant : /media/disk
mais comment recuperer le repertoire d'execution ?

os.name : Linux
os.arch : i386
os.version : 2.6.23.15-137.fc8

java.vendor : Sun Microsystems Inc.
java.version : 1.6.0_03

pour les flemmards, le jar est disponible ici Smile

et notez que, contrairement à l'affichage, ce n'est pas le répertoire d'exécution qui pose problème à la récupération, mais le répertoire où se trouve l'exécutable...

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LAJ1] getenv

Message  Contenu sponsorisé Aujourd'hui à 05:27


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum