Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1711 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java] Lecture des variables d'environement de windows [résolu]

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[java] Lecture des variables d'environement de windows [résolu]

n°140595
pulpipi
Un ours cé relativement gros
Posté le 17-05-2002 à 18:16:29  profilanswer
 

Voilà je cherche à lire la variable d'environement "tmp".
 
Il y a bien dans la class System une methode Getproperty("" )
Ya plein de key différentes mais pas le repertoire temp de l'utilisateur  :(  
 
La methode getEnv ne marche pas ...
 
Ma question est donc connaissez vous un moyen de lire des variables d'environement avec JAVA ???
 
Merci de vos réponses.

 

[jfdsdjhfuetppo]--Message édité par Pulpipi le 24-05-2002 à 14:54:56--[/jfdsdjhfuetppo]


---------------
Mon photoBlog quilaibien -- Galerie HFR
mood
Publicité
Posté le 17-05-2002 à 18:16:29  profilanswer
 

n°140600
pulpipi
Un ours cé relativement gros
Posté le 17-05-2002 à 18:33:09  profilanswer
 

Bon ben j'ai trouvé (c t pas dans le java doc)
Comme quoi google c kewl  [:roy_r]  
 
En fait c'était tout con.
pour info :
System.out.println("TEMP : " + System.getProperty("java.io.tmpdir" ));
 
Edit : je vais même mettre la page ou il y a plein de jolies infos.
http://www.rgagnon.com/javadetails/java-0150.html
 :hello:

 

[jfdsdjhfuetppo]--Message édité par Pulpipi le 17-05-2002 à 18:41:02--[/jfdsdjhfuetppo]


---------------
Mon photoBlog quilaibien -- Galerie HFR
n°140670
darklord
You're welcome
Posté le 17-05-2002 à 22:21:01  profilanswer
 

attention. Avec ca tu perds la portabilité (cette variable n'est dispo que sous windows)


---------------
Just because you feel good does not make you right
n°140697
veryfree
Posté le 17-05-2002 à 23:13:50  profilanswer
 

juste pour dire que ce site est merveilleux!
dark si tu pouvai l ajouter ds la FAQ ce serait cool
 
 
 
 :hello:

n°140701
- Renaud -
Posté le 17-05-2002 à 23:23:09  profilanswer
 

a mon avis il vaut mieux essayer d'utiliser:

Code :
  1. java.io.File.createTempFile(...);


 
qui lui est portable...
 
Renaud

n°140729
pulpipi
Un ours cé relativement gros
Posté le 18-05-2002 à 00:18:26  profilanswer
 

DarkLord a écrit a écrit :

attention. Avec ca tu perds la portabilité (cette variable n'est dispo que sous windows)  




 
Oui je sais pour la portabilité
Mais pour l'appli que j'utilise c pas grave vu qu'elle n'est pas portable (appli C++ + MFC)


---------------
Mon photoBlog quilaibien -- Galerie HFR
n°140771
darklord
You're welcome
Posté le 18-05-2002 à 09:16:27  profilanswer
 

veryfree a écrit a écrit :

juste pour dire que ce site est merveilleux!
dark si tu pouvai l ajouter ds la FAQ ce serait cool
 
 
 
 :hello:  




 
ok


---------------
Just because you feel good does not make you right
n°143500
greg@frees​tarthu
Posté le 23-05-2002 à 18:05:20  profilanswer
 

p$$$$$ mais qu'est-ce qu'ils ont tous a vouloir acceder aux variables d'env de windows, a lancer des .exe et tout ça?
ferait pas mieux de faire des .BAT ces gens là ??  :fou:

n°143501
darklord
You're welcome
Posté le 23-05-2002 à 18:07:05  profilanswer
 

greg@freestarthu a écrit a écrit :

p$$$$$ mais qu'est-ce qu'ils ont tous a vouloir acceder aux variables d'env de windows, a lancer des .exe et tout ça?
ferait pas mieux de faire des .BAT ces gens là ??  :fou:  




 
 :jap:


---------------
Just because you feel good does not make you right
n°143502
darklord
You're welcome
Posté le 23-05-2002 à 18:07:24  profilanswer
 

c'est comme les "gens" qui utilisent des BigDecimal à la place d'un bete double :D


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 23-05-2002 à 18:07:24  profilanswer
 

n°143505
greg@frees​tarthu
Posté le 23-05-2002 à 18:09:14  profilanswer
 

DarkLord a écrit a écrit :

c'est comme les "gens" qui utilisent des BigDecimal à la place d'un bete double :D  




 :hello:

n°143542
veryfree
Posté le 23-05-2002 à 19:49:30  profilanswer
 

je crois que le probleme ne vien pas des .bat c juste que la plupart des gens ne savent pas lancer un prgramme ni ce qu est une machine virtuel.
en gros
qd tu fait des programmes clients en java  
c est plus facile de les distibuer et donc de les faire connaitre lorsque t a pas 20Mo a télécharger  
voila l interet des exe a mes yeux
parce que moi je sait lancer un prog mais c po tj evident pour les newbies

n°143552
pulpipi
Un ours cé relativement gros
Posté le 23-05-2002 à 20:03:11  profilanswer
 

greg@freestarthu a écrit a écrit :

p$$$$$ mais qu'est-ce qu'ils ont tous a vouloir acceder aux variables d'env de windows, a lancer des .exe et tout ça?
ferait pas mieux de faire des .BAT ces gens là ??  :fou:  




 
Pour info, je ne cherche absoluement pas à lancer de .exe ou autre ...
 
J'ai juste une application serveur dévelloppée sous Visual C++ qui permet le stockage d'infos dans des bases Lotus Notes.
 
En gros, ces infos qd tu les edites les modifies etc, il se crée un fichier dans le répertoire temp de windows, et une fois tes modifs termiées les modification sont ratachées dans la base Notes et le fichier supprimé. (classique quoi ...)
 
Moi j'ai dévellopé une application qui permet des visualiser ces infos à partir du web en faisant une Webapp (JSP+servlet), et bêtement j'avais besoin de la variable d'environnement "tmp" de windows car ce sont là que sont stockée mes infos.
 
Donc je part du principe que vos remarques très interessantes ne me concerne aucunnement.
 
Et merci je sais lancer un programme.
 
A bon entendeur salut les kadors ...
 
 :hello:
 
Edit : je suis assé d'accord avec ta remarque veryfree.

 

[jfdsdjhfuetppo]--Message édité par Pulpipi le 23-05-2002 à 20:04:44--[/jfdsdjhfuetppo]


---------------
Mon photoBlog quilaibien -- Galerie HFR
n°143646
benou
Posté le 23-05-2002 à 23:13:44  profilanswer
 

pourquoi est ce que tu ne mettais pas simplement le répertoire temporaire en paramètre de ta servelt ?

n°143734
pulpipi
Un ours cé relativement gros
Posté le 24-05-2002 à 10:26:17  profilanswer
 

benou a écrit a écrit :

pourquoi est ce que tu ne mettais pas simplement le répertoire temporaire en paramètre de ta servelt ?  




 
Ben, quoi qu'il arrive, j'ai besoin de connaitre le repertoire temp de windows (coté serveur)...
Et il peut etre different suivant l'endroit ou tu déploie ton application et l'utilisateur peut le changer si il le souhaite (ok, je suis d'accord c'est peu probable).
En gros c'est juste pour des soucis d'installation, pour ne pas être olbiger de figer cette variable.


---------------
Mon photoBlog quilaibien -- Galerie HFR
n°143741
El_gringo
Posté le 24-05-2002 à 10:35:15  profilanswer
 

greg@freestarthu a écrit a écrit :

p$$$$$ mais qu'est-ce qu'ils ont tous a vouloir acceder aux variables d'env de windows, a lancer des .exe et tout ça?
ferait pas mieux de faire des .BAT ces gens là ??  :fou:  




 
Et y a pas moyen d'accèder à une variable d'environnement, quel que soit l'OS ?
Parce que moi, je vois vraiement pas comment je pourrait faire. Je m'explique :
J'ai une servlet. Cette servlets à besoin de plein d'infos de paramètrage, je vais donc utiliser un fichier properties. Mais y a une info que je pourrais pas récupérer dans ce fichier, c'est la localisation de ce fichier justement.
Alors j'aurai bien voulu faire que, pour installer ma servlet, on définise une variable d'environnement MA_SERVLET_PATH = C:\MaServlet\ (ou =/MaSerlvet si on est ss Unix par exemple). Parce qu'avec ma servlet, je vois qu'on peut récupérer l'url de ma servlet, mais je vois pas comment récupérer le Path des fichiers .java de la servlet (ou le path de la servlet, où j'aurait pu obliger à mettre le fichier properties).
Voila...

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 24-05-2002 à 10:44:00--[/jfdsdjhfuetppo]

n°143759
El_gringo
Posté le 24-05-2002 à 10:51:01  profilanswer
 

Darklord et les autres Javaphiles ne sont pas là !?
(c pas la peine de répondre à cette question. Finalement, c'est qu'un UP ! :D)

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 24-05-2002 à 10:51:39--[/jfdsdjhfuetppo]

n°143766
benou
Posté le 24-05-2002 à 11:03:41  profilanswer
 

mais pourquoi vous vous servais pas des fichiers de config ?????
c'est fait pour ca !
je parle du fichier web.xml

 

[jfdsdjhfuetppo]--Message édité par benou le 24-05-2002 à 11:04:05--[/jfdsdjhfuetppo]


---------------
ma vie, mon oeuvre - HomePlayer
n°143776
El_gringo
Posté le 24-05-2002 à 11:11:46  profilanswer
 

benou a écrit a écrit :

mais pourquoi vous vous servais pas des fichiers de config ?????
c'est fait pour ca !
je parle du fichier web.xml  




 
web.xml. c le truc qui prend la suite de win.ini en gros !?
et c'est présent sur tous les OS ça !?

n°143780
El_gringo
Posté le 24-05-2002 à 11:15:03  profilanswer
 

Ok, je viens de comprendre, dsl.
En fait, un fichier xml est associé à une servlet en fait, c ça !?
Et je fais comment pour insérer et récupérer des infos dedant !?

n°143781
El_gringo
Posté le 24-05-2002 à 11:15:24  profilanswer
 

el_gringo a écrit a écrit :

Ok, je viens de comprendre, dsl.
En fait, un fichier xml est associé à une servlet en fait, c ça !?
Et je fais comment pour insérer et récupérer des infos dedant !?  
ça peut même remplacer mon fichier properties, non ?



n°143786
benou
Posté le 24-05-2002 à 11:18:13  profilanswer
 

c'est un fichier qui permet de configurer une application web.
 
Regarde les exemples de fichiers web.xml fournis avec tomcat par exemple.
Dedeans, tu peux fixer des paramètres pour tes servelts. Ces paramètres pourront être récupérer lors de l'initialisation de la servlet dans l'objet ServletConfig (si je me souviens bien)


---------------
ma vie, mon oeuvre - HomePlayer
n°143796
El_gringo
Posté le 24-05-2002 à 11:29:16  profilanswer
 

benou a écrit a écrit :

c'est un fichier qui permet de configurer une application web.
 
Regarde les exemples de fichiers web.xml fournis avec tomcat par exemple.
Dedeans, tu peux fixer des paramètres pour tes servelts. Ces paramètres pourront être récupérer lors de l'initialisation de la servlet dans l'objet ServletConfig (si je me souviens bien)  




 
Ouais, presque, en fait ServletConfig, c une interface, et GenericServlet (la classe de base d'une servlet) l'implémente. Du coup c génial, merci beaucoup Benou. Plus de fichier properties. La config se fera entièrement dans le fichier web.xml.
c plus logique, non !?

n°143800
El_gringo
Posté le 24-05-2002 à 11:31:59  profilanswer
 

Mais en fait, en Java, plus généralement, je comprend pas un truc.
Je viens de voir que GenericServlet à aussi une méthode getServletConfig qui rend l'objet ServletConfig associé à la servlet. Mais ServletConfig est une interface. On récupère une instance d'une interface, j'croyais qu'on pouvait pas instancier une interface !!!?

n°143856
greg@frees​tarthu
Posté le 24-05-2002 à 12:08:27  profilanswer
 

el_gringo a écrit a écrit :

Mais en fait, en Java, plus généralement, je comprend pas un truc.
Je viens de voir que GenericServlet à aussi une méthode getServletConfig qui rend l'objet ServletConfig associé à la servlet. Mais ServletConfig est une interface. On récupère une instance d'une interface, j'croyais qu'on pouvait pas instancier une interface !!!?  




 
la methode getServletConfig te renvoie une instance d'une classe qui implemente cette interface
subtile nuance:)
 
***
quant au truc de repertoire temporaire(-->Pulpipi), y'a une methode createTemporaryFile ou qqch comme ça dans la classe File qui sert exactement a ce que tu veux faire (le coup du .exe ct pas pour toi, mais ct un msg general a pleins de gens qui veulent acceder a tout prix a des trucs qui sont "os dependant" )

 

[jfdsdjhfuetppo]--Message édité par greg@freestarthu le 24-05-2002 à 12:09:04--[/jfdsdjhfuetppo]

n°143870
El_gringo
Posté le 24-05-2002 à 12:22:34  profilanswer
 

greg@freestarthu a écrit a écrit :

 
la methode getServletConfig te renvoie une instance d'une classe qui implemente cette interface
subtile nuance:)




 
Dans la doc java des servlets, c marqué que getServletConfig rend un objet ServletConfig.
ServletConfig est une interface, il ne peut donc, logiquement, pas exister une class du même nom qui implémente cette interface, si !?
Bref, en fait, comment on utilise cette méthode getServletConfig.
On récupère quoi comme objet alors !?
On peut pas faire:

Code :
  1. ServletConfig MaConfig = getServletContext();


Si !?

n°143899
benou
Posté le 24-05-2002 à 13:31:55  profilanswer
 

faut pas voir les choses comme ca !
 
Une interface c'est comme un cahier des charges. Ca définit les opération qu'un objet devra pouvoir faire.
 
la méthode getServletContext() te renvoie un Objet (peut importe son type). Ce qui est important c'est que tu sait qu'elle remplie le contrat "ServletConfig", donc tu peux appeler toutes les opérations qui sont définietn dans ServletConfig.
 
Donc, effectivement, l'objet que tu récupères n'est  une instance de "ServletConfig". Mais  on peut quand même considérer qu'elle est du type ServletConfig puisqu'elle sait faire tout ce qu'une ServletConfig doit savoir faire.
 
C'est pour ca que l'héritage est appelée une relation "est un" (ou "is a" )
 
par exemple :  
   - un Vector est une Collection
   - une String est un Object
   - etc ...


---------------
ma vie, mon oeuvre - HomePlayer
n°143903
greg@frees​tarthu
Posté le 24-05-2002 à 13:41:19  profilanswer
 

benou a écrit a écrit :

...
C'est pour ca que l'héritage est appelée une relation "est un" (ou "is a" )
 
par exemple :  
   - un Vector est une Collection
   - une String est un Object
   - etc ...  




 
on dit "implemente", hahem, comme je l'ai dit plutot quoi
(ArrayList implemente Collection etc)

n°143916
benou
Posté le 24-05-2002 à 13:58:52  profilanswer
 

:sarcastic: y a pas qu'un mot
 
je parlais des relations "is a" et "has a". C'est un vocabulaire souvent employé quand on parle d'architcture objet : héritage vs. composition
 
http://www.google.fr/search?hl=fr& [...] a%22&meta=


---------------
ma vie, mon oeuvre - HomePlayer
n°143920
El_gringo
Posté le 24-05-2002 à 14:04:34  profilanswer
 

benou a écrit a écrit :

faut pas voir les choses comme ca !
 
Une interface c'est comme un cahier des charges. Ca définit les opération qu'un objet devra pouvoir faire.
 
la méthode getServletContext() te renvoie un Objet (peut importe son type). Ce qui est important c'est que tu sait qu'elle remplie le contrat "ServletConfig", donc tu peux appeler toutes les opérations qui sont définietn dans ServletConfig.
 
Donc, effectivement, l'objet que tu récupères n'est  une instance de "ServletConfig". Mais  on peut quand même considérer qu'elle est du type ServletConfig puisqu'elle sait faire tout ce qu'une ServletConfig doit savoir faire.
 
C'est pour ca que l'héritage est appelée une relation "est un" (ou "is a" )
 
par exemple :  
   - un Vector est une Collection
   - une String est un Object
   - etc ...  




 
Je sais.
Mais du coup, cette écriture là:

Code :
  1. ServletConfig MaConfig = getServletContext();


Ne passe pas à la compile, si !?
à la limite, je pourrais par contre faire:

Code :
  1. GenericServlet MaConfig = getServletContext();


(sachant que GenericServlet implémente ServletConfig)
 
c ça !?

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 24-05-2002 à 14:05:11--[/jfdsdjhfuetppo]

n°143937
pulpipi
Un ours cé relativement gros
Posté le 24-05-2002 à 14:18:09  profilanswer
 

greg@freestarthu a écrit a écrit :

 
 
la methode getServletConfig te renvoie une instance d'une classe qui implemente cette interface
subtile nuance:)
 
***
quant au truc de repertoire temporaire(-->Pulpipi), y'a une methode createTemporaryFile ou qqch comme ça dans la classe File qui sert exactement a ce que tu veux faire (le coup du .exe ct pas pour toi, mais ct un msg general a pleins de gens qui veulent acceder a tout prix a des trucs qui sont "os dependant" )  
 
 




 
Ok j'ai vu  :)  
Pour info la propriété système "java.io.tempdir" marche ausi bien sur les systemes UNIX que sur les systemes Win32.
 

Citation :


The default temporary-file directory is specified by the system property java.io.tmpdir. On UNIX systems the default value of this property is typically "/tmp" or "/var/tmp"; on Win32 systems it is typically "c:\\temp".

 

[jfdsdjhfuetppo]--Message édité par Pulpipi le 24-05-2002 à 14:19:12--[/jfdsdjhfuetppo]


---------------
Mon photoBlog quilaibien -- Galerie HFR
n°143968
greg@frees​tarthu
Posté le 24-05-2002 à 14:45:01  profilanswer
 

benou a écrit a écrit :

:sarcastic: y a pas qu'un mot
 
je parlais des relations "is a" et "has a". C'est un vocabulaire souvent employé quand on parle d'architcture objet : héritage vs. composition
 
http://www.google.fr/search?hl=fr& [...] a%22&meta=  




okie :)

n°143970
benou
Posté le 24-05-2002 à 14:46:41  profilanswer
 

el_gringo a écrit a écrit :

 
Je sais.
Mais du coup, cette écriture là:

Code :
  1. ServletConfig MaConfig = getServletContext();


Ne passe pas à la compile, si !?
à la limite, je pourrais par contre faire:

Code :
  1. GenericServlet MaConfig = getServletContext();


(sachant que GenericServlet implémente ServletConfig)
c ça !?  




bha non :

Code :
  1. ServletConfig MaConfig = getServletContext();

ca marche très bien.
et la solution dont tu parlais après ne marchait pas :  
 - d'abord parce qu'il faudrait faire un cast
 - ensuite parce qu'il n'y a aucune raison pour que tu fasses une suposition sur la nature de l'objet qui t'es renvoyer


---------------
ma vie, mon oeuvre - HomePlayer
n°143987
El_gringo
Posté le 24-05-2002 à 14:54:08  profilanswer
 

benou a écrit a écrit :

 
bha non :

Code :
  1. ServletConfig MaConfig = getServletContext();

ca marche très bien.
et la solution dont tu parlais après ne marchait pas :  
 - d'abord parce qu'il faudrait faire un cast
 - ensuite parce qu'il n'y a aucune raison pour que tu fasses une suposition sur la nature de l'objet qui t'es renvoyer  




 
Ok, je saisi à peu près.
Mais je trouve un peu troublant.
Avec cette écriture, on dirait qu'on récupère l'instance d'une interface avec la fonction getServletContext().
Mais en fait, on récupère l'instance d'un objet (on sait pas lequel) qui implémente ServletConfig.  
C ça !?

n°143989
greg@frees​tarthu
Posté le 24-05-2002 à 14:55:55  profilanswer
 

el_gringo a écrit a écrit :

 
 
Ok, je saisi à peu près.
Mais je trouve un peu troublant.
Avec cette écriture, on dirait qu'on récupère l'instance d'une interface avec la fonction getServletContext().
Mais en fait, on récupère l'instance d'un objet (on sait pas lequel) qui implémente ServletConfig.  
C ça !?  




:yaisse:

n°143990
darklord
You're welcome
Posté le 24-05-2002 à 14:56:00  profilanswer
 

mais tu t'en fous ce que tu récupères. CE que tu dois savoir lorsque tu récupères un objet c'est  : "qu'est ce que je peux faire avec". C'est justement génial ce mécanisme car l'implménetation interne peut changer (et donc te renvoyer un truc plus spécialisé avec un comportement plus spécifique à l'app serveur).
 
Tu récupères un objet et tu sais que celui ci offre les fonctionnalités X Y Z.
 
Avoir un type de retour une interface ne signifie PAS que tu vas récupérer une interface pour la simple et bonne raison qu'une interface ne peut etre instanciée (donc c'est impossible).
 
Voilà A+


---------------
Just because you feel good does not make you right
n°143998
El_gringo
Posté le 24-05-2002 à 15:02:10  profilanswer
 

DarkLord a écrit a écrit :

mais tu t'en fous ce que tu récupères. CE que tu dois savoir lorsque tu récupères un objet c'est  : "qu'est ce que je peux faire avec". C'est justement génial ce mécanisme car l'implménetation interne peut changer (et donc te renvoyer un truc plus spécialisé avec un comportement plus spécifique à l'app serveur).
 
Tu récupères un objet et tu sais que celui ci offre les fonctionnalités X Y Z.
 
Avoir un type de retour une interface ne signifie PAS que tu vas récupérer une interface pour la simple et bonne raison qu'une interface ne peut etre instanciée (donc c'est impossible).
 
Voilà A+  




 
Bah justement, alors pourquoi je peux écrire:
ServletConfig MaConfig = getServletContext();  
Sachant que ServletConfig est une interface.
MaConfig semble bien être une instance de ServletConfig.
Mais en fait c une instance d'un objet quelconque qui implémente ServletConfig, c ça !?

n°144003
benou
Posté le 24-05-2002 à 15:07:22  profilanswer
 

c'est ce qu'on se tue à te dire depuis tout à l'heure : tu t'en fous de ce qu'est réélement ton objet. La seule chose intéressante c'est ce que à quoi il peut te servir, c'est à dire ce que tu peux faire avec, c'est à dire les opérations qu'il permet de faire, c'est à dire son interface.


---------------
ma vie, mon oeuvre - HomePlayer
n°144007
benou
Posté le 24-05-2002 à 15:08:36  profilanswer
 

et pourquoi tu pourrais pas l'écrire vu que l'objet retourné par ServletConfig est un ServeltConfig ?


---------------
ma vie, mon oeuvre - HomePlayer
n°144009
El_gringo
Posté le 24-05-2002 à 15:09:32  profilanswer
 

G compris.
Ms c pas si simple que ça a assimiler.
Mais Java, plus je découvre, et plus je trouve ce langage génialement bien fait.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] Lecture des variables d'environement de windows [résolu]

 

Sujets relatifs
[JAVA/JINI]Comment ca marche ? (desoler question vague ....)Compatibilite CLX Borland et API Windows de base
java servlets, mysql, singleton, bug... on va bien s'amuser !![C/C++] Windows 95/98/2000 et plus si affinité: Récupérer codecs vidéo
[java] Un peu d'algorithmique niveau combinatoire...[SVG / java/Batik] Manipulation / convertion de fichiers SVG
[JAVA] variables d'environnement JAVA_HOME ?[C] Pb de socket sous Windows
Latex et Windows 
Plus de sujets relatifs à : [java] Lecture des variables d'environement de windows [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR