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

Langage Java Discussion :

Problème avec MetaFilenameFilter (slash dans des String)


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut Problème avec MetaFilenameFilter (slash dans des String)
    Bonjour,
    j'utilise la classe MetaFilenameFilter disponible ici : http://www.developpez.net/forums/sho...4&postcount=19 par adiGuba et j'ai un petit problème

    Elle fonctionne parfaitement bien chez moi sur l'application que j'ai dev mais lorsque je l'utilise sur un autre PC (l'appli que j'ai dev), cela me sort ça comme exception :
    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
     
    Exception in thread "Thread-2" java.util.regex.PatternSyntaxException: Unexpecte
    d internal error near index 3
    \\Q\\E
       ^
            at java.util.regex.Pattern.error(Unknown Source)
            at java.util.regex.Pattern.compile(Unknown Source)
            at java.util.regex.Pattern.<init>(Unknown Source)
            at java.util.regex.Pattern.compile(Unknown Source)
            at java.lang.String.replaceAll(Unknown Source)
            at jpaq.MetaFilenameFilterPos.<init>(MetaFilenameFilterPos.java:32)
            at jpaq.PaquetJ2EE.verifAvantCopie(PaquetJ2EE.java:341)
            at jpaq.PaquetJ2EE.creationAuto(PaquetJ2EE.java:86)
            at jpaq.FrameJ2EE_creationPaquet$5.run(FrameJ2EE_creationPaquet.java:195
    )
            at java.lang.Thread.run(Unknown Source)
    Je ne comprends pas pourquoi cela marche sur mon PC mais pas sur l'autre :/
    La version de Java est différente, moi j'ai la java version "1.6.0_02" et sur l'autre java version "1.6.0_01" !

    Si qqun a une idée

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Points : 317
    Points
    317
    Par défaut
    Si je me rappel bien si tu es entrain de faire l appel de ton prog en command-line tu dois ajouter un \ je crois que ca depend de ta JVM.

    Essaye d ajouter un \ et fais nous savoir.

    Cheers,

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    La ligne qui lève l'exception sur le PC2 est celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regexpPattern = regexpPattern.replaceAll("\\\\Q\\\\E", "");
    Je test l'appli à chaque fois depuis le command-line, que ce soit sur mon PC ou sur le deuxième. Dans un cas cela fonctionne, dans l'autre non :/

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    En remplacant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regexpPattern = regexpPattern.replaceAll("\\Q\\E", "");
    cela marche sur les 2PCs mais je comprends pas pourquoi avant cela ne marchait que sur un :/

  5. #5
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Points : 317
    Points
    317
    Par défaut
    le problem viens du mix metacharecters et Strings ca ne marche pas tres bien comme mix, le regex n aime pas trop ca:
    exemple:
    String p = "." // regex vois ca commele "." metacharacter
    String p ="\." // regex vois comme une sequence illegal Java escape sequence.
    comme le \n et le \b...

    j espere que c est plus clair,

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    J'ai posté le code d'un constructeur de la classe MetaFilenameFilter qui semble régler le problème, cf FileFilter générique type linux .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Points : 64
    Points
    64
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/03/2015, 14h22
  2. Problème avec caractères spéciaux dans STRING
    Par sibama dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/04/2012, 10h14
  3. Réponses: 4
    Dernier message: 25/05/2007, 11h11
  4. Problème avec un switch contenant des strings
    Par dessinateurttuyen dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2006, 12h56
  5. Réponses: 1
    Dernier message: 01/03/2005, 21h36

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