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

avec Java Discussion :

Chemin sous Windows et Linux


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Par défaut Chemin sous Windows et Linux
    Je développe mon appli Java sous Windows. J'utilise dans les chemins d'accès au disque le \

    Quand je la lance sous Debian, j'ai des erreurs dans les chemins :

    /home/moi\test\

    Evidemment il mélange les séparateurs Windows et Linux.

    J'imagine que Java sait gérer cela, mais comment ? J'ai l'habitude sous Windows d'utiliser des String pour les chemins, mais visiblement ce n'est pas la bonne option.

    Avez-vous une idée ?

    Christian

  2. #2
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Essaie de n'utiliser que des "/" ... "/test/", donc.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    en Java 7, utilises les classes java.nio.file.Path et java.nio.file.Paths pour ne plus avoir à se préoccuper de ça :

    L'exécution, sous Windows de ce programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class PathTest {
     
    	public static void main(String[] args) {
     
    		System.out.println(Paths.get("/machin/truc.txt").toString());
    		System.out.println(Paths.get("/machin\\truc.txt").toString());
    		System.out.println(Paths.get("\\machin\\truc.txt").toString());
     
    	}
     
    }
    affiche :

    \machin\truc.txt
    \machin\truc.txt
    \machin\truc.txt
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ça marchait parfaitement en Java 1.4 en utilisant juste File.

    Sans compter que transformer les / en \ pour Windows est purement cosmétique : les utilisateurs ont l'habitude de voir des \ et il vaut donc mieux leur montrer ça, mais Windows se tamponne complètement que l'on utilise l'un ou l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Ça marchait parfaitement en Java 1.4 en utilisant juste File.
    Oui. Mais je pense qu'il se sert des paths sous forme de String, de manière externe à java (sinon ça fonctionnerait, en effet).

    Citation Envoyé par thelvin Voir le message
    Sans compter que transformer les / en \ pour Windows est purement cosmétique : les utilisateurs ont l'habitude de voir des \ et il vaut donc mieux leur montrer ça, mais Windows se tamponne complètement que l'on utilise l'un ou l'autre.
    Dans des shell scripts, je ne crois pas justement. En ligne de commande, ce n'est pas le cas :
    C:\Documents and Settings\Joël>cd c:/temp
    Le chemin d'accès spécifié est introuvable.
    En tout cas, en ce qui me concerne, j'utilise toujours des slashes (parce que c'est plus lisible que \\ et qu'il n'y a qu'un caractère à taper au lieu de 2 ) quand j'ai besoin de taper un path directement dans mon code (ce qui est extrêmement rare), et j'utilise toujours des File, donc aucun soucis avec des paths avec \ ou / qui proviendrait d'un fichier de config ou autre.
    Quand j'exporte, je fais éventuellement un replace pour remplacer les "mauvais" séparateurs par le séparateur par défaut de l'OS de destination.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Dans des shell scripts, je ne crois pas justement. En ligne de commande, ce n'est pas le cas :
    C:\Documents and Settings\Joël>cd c:/temp
    Le chemin d'accès spécifié est introuvable.
    Je ne pourrais pas jurer ce qui est fait dans des shell scripts Windows pour assurer la rétrocompatibilité, l'idée même de faire des shell scripts sous Windows autrement qu'avec powershell ou cygwin me semblant à peine plus productif que juste se suicider directement.
    Mais il se trouve que nous ne sommes pas en train de parler shell scripts, qui sous Windows, sont un domaine d'étude à eux tous seuls.

    Par ailleurs, la commande "cd c:/temp" produit exactement les mêmes résultats que "cd c:\temp". Je pense que ton Windows date probablement d'après 2005 et n'a donc jamais eu l'idée saugrenue de créer un répertoire "temp" à la racine d'un volume, que ce soit le principal ou un autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. TB sous windows et linux
    Par mhamedbj dans le forum Thunderbird
    Réponses: 4
    Dernier message: 15/05/2007, 15h28
  2. Installer un serveur sous Windows ou Linux
    Par dell.inferno dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 13/01/2007, 19h42
  3. Réponses: 9
    Dernier message: 05/11/2006, 00h33
  4. Les interruptions sous Windows et Linux
    Par Descartes dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 07/06/2003, 22h42
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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