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

Java Discussion :

Runtime.Exec et UTF8


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Par défaut Runtime.Exec et UTF8
    Bonjour,

    Je souhaiterais exécuter cette commande dans mon programme java, mais ca ne fonctionne pas:

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("explorer  "+"D:\\한국어");

    Je reçois une erreur comme cela:

    The path "D:\\???" does not exist.

    Quelqu'un sait comment faire?

    Merci par avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Vous devez doublez les \ quand vous créez une string java.

    Je vous recommande aussi de séparer l'application de ses argmuents, c'est plus clair à lire:

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Runtime.getRuntime().exec(new String[] {
                  "explorer ",
                  "D:\\\\한국어"}
                  );

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Par défaut
    Merci pour votre réponse, cependant le soucis ne semble pas venir des \\\\, en effet, en faisant

    Runtime.getRuntime().exec(new String[] {
    "explorer ",
    "D:\\toto"}
    );

    La commande fonctionne bien.
    Il semblerait que ce soit lié aux caractères UTF8

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Êtes vus sûr que votre compilateur lit bien correctement votre fichier source (dans l'encodage qui a été utilisé pour le sauver) ?

    Pourriez vous afficher le résultat de
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static void main(String[] args) throws FileNotFoundException, FontFormatException, IOException {
    		String s = "한국어";
    		for (char c: s.toCharArray())
    			System.out.printf("0x%4X ",(long)c);
    		System.out.println();
    	}

    Vous devriez obtenir ceci si le compilateur fonctionne correctement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    0xD55C 0xAD6D 0xC5B4
    Essayez aussi ceci pour votre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Runtime.getRuntime().exec(new String[] {
                  "explorer ",
                  "D:\\\ud55c\uad6d\uC5B4"}
                  );

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Par défaut
    Concernant la première partie ca fonctionne bien, j'ai bien eu comme output:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1
    20xD55C 0xAD6D 0xC5B4
    Par contre en faisant ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Runtime.getRuntime().exec(new String[] {
                  "explorer ",
                  "D:\\\ud55c\uad6d\uC5B4"}
                  );
    J'ai toujours l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    the path D:\\??? does not exists or is not a directory.

    De plus quand je fais
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("D:\\한국어");
    J'ai une erreur du genre
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot execute D:\\한국어
    Le nom du dossier est bien pris en compte.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il est possible que le nom du fichier sur le filesystem soit erroné.
    Pourriez vous faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File("D:\\").list()
    et afficher le nom de tous les fichiers présents?

Discussions similaires

  1. [RUNTIME][EXEC]
    Par adrien1977 dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 30/09/2009, 16h28
  2. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 13h37
  3. [Runtime]exec() avec une commande paramétrée
    Par nice dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2005, 13h15
  4. [Servlet][Windows][System call]Runtime.exec
    Par lucho31 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 18/01/2005, 11h55
  5. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54

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