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

AWT/Swing Java Discussion :

fichier txt introuvable avec le .jar mais fonctionne avec eclipse


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut fichier txt introuvable avec le .jar mais fonctionne avec eclipse
    Bonjour,

    J'ai un prob avec mon jar il ne trouve pas le fichier AmsterdamErreur.txt alors que lorsque je le lance avec eclipse ya pas de probleme....

    Help je craque un peu la

    AmsterdamErreur.txt
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    10;        Syntax error on field :
    11;        The character is not allowed :
    20;        Error on field :
    21;        This field is mandatory. It must not be empty or contain only blank characters.
    2001;        Syntax error on field 20 (Sender's Reference).This field must contain 1 to 16 alphanumeric characters.
    2002;        Syntax error on field 20 (Sender's Reference).This field must not start or end with a slash '/' and must not contain two consecutive slashes '//'.
    2101;        Syntax error on field 21E (Registration Reference)This field must contain 1 to 8 numeric characters.
    3001;        Syntax error on field 30 (Requested Execution Date)This field must contain a valid date.
    5001;        Syntax error on field 50D (Creditor's Name)This field must contain 1 to 35 alphanumeric characters.
    5002;        Syntax error on field 50D (Creditor's address - 1st line)This field must contain 1 to 35 alphanumeric characters.
    5003;        Syntax error on field 50D (Creditor's address - 2nd line)This field must contain 1 to 35 alphanumeric characters.
    5004;        Syntax error on field 50D (Creditor's address - 3rd line)This field must contain 1 to 35 alphanumeric characters.
    7701;        Syntax error on field 77B (Residence of Creditor)This field must contain 2 alphabetic characters.
    7702;        Syntax error on field 77B (Creditor's Reference)This field must contain 1 to 16 numeric characters.
    2111;        Syntax error on field 21 (Trasaction Reference)This field must contain 1 to 16 alphanumeric characters.
    2112;        Syntax error on field 21 (Trasaction Reference)This field must not start or end with a slash '/' and must not contain two consecutive slashes '//'.
    3201;        Syntax error on field 32B (Transaction Amount)This field must contain a valid amount.
    5901;        Syntax error on field 59 (Debtor's Account)This field must contain 10 numeric characters.
    5902;        Syntax error on field 59 (Debtor's Name)This field must contain 1 to 35 alphanumeric characters
    5903;        Syntax error on field 59 (Debtor's address - 1st line)This field must contain 1 to 35 alphanumeric characters
    5904;        Syntax error on field 59 (Debtor's address - 2nd line)This field must contain 1 to 35 alphanumeric characters
    5905;        Syntax error on field 59 (Debtor's address - 3rd line)This field must contain 1 to 35 alphanumeric characters
    7001;        Syntax error on field 70 (Remittance Information - 1st line)This field must contain 1 to 15 alphanumeric characters
    7002;        Syntax error on field 70 (Remittance Information - 2nd line)This field must contain 1 to 15 alphanumeric characters
    7703;        Syntax error on field 70 (Creditor's Abonnement Code)This field must contain 8 alphanumeric characters.
    5301;        Syntax error on field 53B (Debtor's account)This field must contain 10 numeric characters.
    Et le code d'ouvertur est :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Image image = Toolkit.getDefaultToolkit().createImage(
                    this.getClass().getResource("/images/sg_title.jpg"));
     
            //Initialisation variable tableau erreurs
            try {
                URL url = this.getClass().getResource("/images/AmsterdamErrors.txt");
                String path = url.getPath();
                path = path.replaceAll("%20", " ");
                System.out.println(path);
     
                path = path.substring(1);
                System.out.println(path);
                InputStream ips1 = new FileInputStream(path);
    //        	InputStream ips1 = new FileInputStream("AmsterdamErrors.txt");
                InputStreamReader ipsr1 = new InputStreamReader(ips1);
                BufferedReader br1 = new BufferedReader(ipsr1);
                String ligneCommande;
     
                while ((ligneCommande = br1.readLine()) != null) {
                    String[] norme = ligneCommande.split(";");
                    errorMap.put(Integer.parseInt(norme[0]), norme[1]);
                }
     
                br1.close();
            } catch (IOException e) {
                System.out.println(e.toString());
            }
    Ce qui me perturbe c'est que la recherche de l'icone qui est dans le meme repertoir que le fichier erreurImage image = Toolkit.getDefaultToolkit().createImage(
    this.getClass().getResource("/images/sg_title.jpg"));
    s'effectue bien avec le jar, mais pour autant il ne trouve pas le fichier txt voisin

    Explication????
    Je vous en pris

  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
    remplace ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                URL url = this.getClass().getResource("/images/AmsterdamErrors.txt");
                String path = url.getPath();
                path = path.replaceAll("%20", " ");
                System.out.println(path);
     
                path = path.substring(1);
                System.out.println(path);
                InputStream ips1 = new FileInputStream(path);
    par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                InputStream ips1 =  this.getClass().getResourceAsStream("/images/AmsterdamErrors.txt");
    En effet, tu ne peux pas faire un new File() de n'importe quelle url. Ca marche dans eclipse parce qu'il y a réellement un fichier derrière.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 89
    Par défaut
    Merci ca marche

    Mais je n'ai pas compris pourquoi cela ne fonctionné pas avant. tu dis:
    En effet, tu ne peux pas faire un new File() de n'importe quelle url. Ca marche dans eclipse parce qu'il y a réellement un fichier derrière.
    Peux tu developper cela un peu plus s'il te plait

    Merci

  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
    Le ressource de ton jar, ce ne sont pas des fichiers, il n'existent pas en tant que tel sur le FileSystem. Un url est beacoup plus générique. Elle peux référencer aussi bien des fichiers que des ressources à l'intérieur d'un Jar. C'est poru ca que, pour charger des ressource en java, il faut toujours utiliser getResource et pas new File()! Sinon, dès que tu passe en jar ou en applet réseau, ca ne fonctionne plus.

    Quand tu lancais depuis eclipse, ca fonctionnait uniquement parce que le classloader utilisé par eclipse utilisait directement les fichier de ton projet (pour des raisons de performances).

    De toutes façons, quand tu dois faire ce genre de bidouille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                String path = url.getPath();
                path = path.replaceAll("%20", " ");
    Tu dois bien déjà sentir que quelque chose ne va pas.

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

Discussions similaires

  1. [ZF 1.10] Clause where qui fonctionne avec type int mais pas avec type String
    Par shadypierre dans le forum Zend_Db
    Réponses: 5
    Dernier message: 30/04/2010, 13h00
  2. fichier shell qui ne fonctionne pas avec le cron mais fonctionne dans le shell
    Par diabli73 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/10/2008, 19h12
  3. Réponses: 7
    Dernier message: 19/02/2008, 15h30
  4. Mon script fonctionne avec un bouton, mais pas avec l'image!
    Par julien.63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/04/2006, 16h26
  5. Programme fonctionnant sur Eclipse mais pas avec le jar?
    Par kirik dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/02/2004, 13h43

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