Créer une nouvelle variable d'environnement ?

cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008 - 2 avril 2008 à 10:02
cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008 - 3 avril 2008 à 09:53
Bonjour,

voilà je dois créer une variable d'environnement depuis mon appli java.
Je sais, c'est pas bien mais c'est obligatoire.
Je peux le faire soit avec Java mais je ne sais pas si c'est possible, soit en executant une ligne de commande.

Mais je ne trouve pas la commande qui permette de rendre cette variable permanente. "set variable = value" n'est valable que dans la session, lorsque celle ci se termine, ma variable n'existe plus hors c'est précisement dans ce cas que j'ai besoin de ma variable.
Je crois que c'est un problème de registre non ?

Je précise que c'est pour windows. Quelqu'un pourrait m'aider  SVP ?

Merci d'avance.

9 réponses

cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008
2 avril 2008 à 10:06
Ah oui, je veux créer une variable système et sinon j'ai une autre question.

Est-on obligé de rédemarrer le PC après pour qu'elle soit prise en compte ?

Parce que si y'a un moyen de l'éviter en forçant une mise à jour ou je ne sais quoi, ça m'intéresse aussi.
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
2 avril 2008 à 11:16
Salut,

<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title></title><meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)" /><style type="text/css"><!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
--></style>tu peux passer les variables en
paramètre à la JVM pour les récupérer dans ton code java
exemple
:
//le code va lire les variables passées en options à la JVM

public class Test {
    public static void main(String[] args) {
        String key1 = "mon_option1";
        String key2 = "mon_option2";
        String key3 = "mon_option3";
        System.out.println(key1 + " : " + System.getProperty(key1));
        System.out.println(key2 + " : " + System.getProperty(key2));
        System.out.println(key3 + " : " + System.getProperty(key3));
    }
}

voici la ligne de commande utilisée pour passer des options à la JVM :
java -Dmon_option1="hello" -Dmon_option2=10 -Dmon_option3=toto Test

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008
2 avril 2008 à 11:56
Oui je vois ce que tu veux dire, merci pour ta réponse, mais je sais pas si ça va marcher.

En fait c'est pour stocker le path où est installée mon appli. Lors d'une nouvelle installation, je dois récupérer cette valeur si elle existe pour savoir par exemple si je dois l'installer quand même car c'est une autre version, updater la version existante, abandonner, ...

La JVM ne va pas me garder mes infos si j'arrête le PC car elle sera redémarrée ?! Et puis on m'a demandé explicitement de passer par une variable d'environnement !
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
2 avril 2008 à 12:20
Salut,

sous unix :

pour bash :
tu
peux ajouter la variable à la fin du fichier .bashrc du répertoire home
de l'utilisateur de ton application (comme ça tu n'as pas besoin des
droits super admin) et tu fais un 'source [homeuser]/.bashrc' afin de
recharger le fichier avec les nouvelles variables (ou tu re ouvres un
nouveau shell).

exemple de variable : export MA_VARIABLE="un truc"
exemple de concaténation de variable : export PATH=/mon/path:${PATH}

pour les autres shell (et pour bash aussi) :
Je
ne connais pas le fonctionnement de tous les shell, mais tu peux placer
ta variable dans un fichier caché genre '[homeuser]/.mon_fichier'

sours windows :
Je ne l'utilise pas...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008
2 avril 2008 à 12:39
Merci, ça me servira peut être un jour mais je cherche pour windows actuellement !!!

et avec Java c'est pas possible ? j'ai vu qu'on pouvait les lire  avec System.getenv("nom_var");
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
2 avril 2008 à 12:46
Salut,

fait le test tu seras vite fixé...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008
2 avril 2008 à 13:14
Le test ? faire export sous windows ? ça marche pas. les reste je peux pas le tester.
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
2 avril 2008 à 14:22
Salut,

nan tu vas dans la fenetre pour configurer une variable
d'env tu créer cette dernière et tu test.
Sinon tu fais un fichier bat et dedans tu
fais un "set mavar=blabal" ensuite tu lances ton application pour voir
si tu peux récup la variable ...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_egwene Messages postés 54 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 3 avril 2008
3 avril 2008 à 09:53
Salut,

ça va pas aller pour ma problématique. Si c'est pour faire un fichier, inutile de stocker l'info dans une variable d'env, je récupère direct mes infos dans ce fichier. Et puis un fichier ça se déplace et supprime facilement. Une variable d'env faut déjà le vouloir, c'est pas fait par erreur.

Je vais essayé de passer par les registres, IzPack propose des classes pour les manipuler mais je trouve peu de doc.
0