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

ANT Java Discussion :

API ANT: capturer les exceptions


Sujet :

ANT Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut capturer les exceptions
    Bonjour,
    je suis sur une classe java depuis laquelle je lance des taches ANT avec la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    org.apache.tools.ant.Main.start(new String[] { "target",
    				"-Dzip.name=" + getDate() }, null, null);
    Or lorsque je l'éxecute, j'ai l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BUILD FAILED
    C:\chemin\build.xml:19: Execute failed: java.io.IOException: Cannot run program "C:\chemin\backupMysql.bat" (in directory "C:\chemin"): CreateProcess error=3, Le chemin d'accès spécifié est introuvable
    et j'aimerais la capturer. J'ai bien essayé de mettre la ligne dans un try/catch mais l'erreur n'est pas remontée.
    Comment puis-je faire pour capturer l'exception levée par ANT, s'il-vous-plait ?

    EDIT: je conviendrais que l'erreur levée est facilement résolvable mais ce n'est pas là l'objet de ma requête. Bien à vous.

  2. #2
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    J'ai trouvé une possibilité en étendant la classe Main de ant, je pourrais y placer un écouteur, mais alors là ça devient chaud vu qu'il y a pas mal champ privé.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     /**
         * Start Ant
         * @param args command line args
         * @param additionalUserProperties properties to set beyond those that
         *        may be specified on the args list
         * @param coreLoader - not used
         *
         * @since Ant 1.6
         */
        public void startAnt(String[] args, Properties additionalUserProperties,
                             ClassLoader coreLoader) {
     
            try {
                Diagnostics.validateVersion();
                processArgs(args);
            } catch (Throwable exc) {
                handleLogfile();
                printMessage(exc);
                exit(1);
                return;
            }
     
            if (additionalUserProperties != null) {
                for (Enumeration e = additionalUserProperties.keys();
                        e.hasMoreElements();) {
                    String key = (String) e.nextElement();
                    String property = additionalUserProperties.getProperty(key);
                    definedProps.put(key, property);
                }
            }
     
            // expect the worst
            int exitCode = 1;
            try {
                try {
                    runBuild(coreLoader);
                    exitCode = 0;
                } catch (ExitStatusException ese) {
                    exitCode = ese.getStatus();
                    if (exitCode != 0) {
                        throw ese;
                    }
                }
            } catch (BuildException be) {
                if (err != System.err) {
                    printMessage(be);
                }
            } catch (Throwable exc) {
                exc.printStackTrace();
                printMessage(exc);
            } finally {
                handleLogfile();
            }
            exit(exitCode);
        }
    Quelqu'un a pas une solution plus officielle ?

  3. #3
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    Une autre solution plus radicale consiste à utiliser les sources et retirer les try/catch de la classe Main en les remplaçant par des throws, puis recompiler. Ainsi, la classe appelante aurait la main sur les exceptions.
    J'avais lu que c'était déconseillé d'utiliser ANT dans un package java, je comprends maintenant pourquoi.
    Pourtant c'est dommage, tous les utilitaires possibles et imaginables sont présents comme le zip qui n'existe pas en batch. Il faudrais que je réécrive tout dans un package vierge et alors bonjour les heures de codes pour rien...

  4. #4
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 61
    Par défaut
    Pardon pour ce monologue mais je suis un bleu en opensource et je voudrais savoir ce que j'ai le droit de faire et de ne pas faire si je modifie les sources ANT.
    J'ai cru comprendre qu'il me faudrait apporter les termes de ma propre licence dans le package, est-ce que j'ai bien compris ?

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

Discussions similaires

  1. c# - Capturer les exceptions au connection a un serveur Active Directory
    Par aiglelibre dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 07/12/2010, 17h37
  2. Capturer correctement les exceptions
    Par samsam786 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 06/04/2010, 14h15
  3. API ANT: capturer les exceptions
    Par pilate dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 23/12/2009, 11h43
  4. Capturer toutes les exceptions
    Par schneidb dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/02/2007, 14h51
  5. Intercepter les 'Exceptions'
    Par Teo dans le forum ASP
    Réponses: 3
    Dernier message: 05/01/2004, 19h55

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