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 :

Une application java qui se plante


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Par défaut Une application java qui se plante
    Bonjour,
    J'ai développer une application java avec eclipse Mars avec une version de JDK 1.8.0_77.
    L'application fonctionne correctement après la création de l'exécutable sous windows 7.
    Mais depuis un certain moment j'ai constaté que cette dernière se plante lors de l'utilisation. Il refuse même la fermeture.
    Il faut forcement lancer un nouveau exécutable pour continuer le travail. Je n'arrive pas a comprendre ce qui se passe.
    S'il vous plait aider moi à comprendre le problème.

  2. #2
    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,

    Il faudrait pouvoir voir les stacktraces des exceptions. Est-ce que tu traces au moins en console ? Dans des fichiers journaux (logs) ? Sinon, il faudrait le faire : ainsi tu verrais ce qui plante exactement, et tu pourrais le corriger.
    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.

  3. #3
    Membre confirmé
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Par défaut
    Merci pour votre prompte réponse.
    Est-ce que tu traces au moins en console ? Dans des fichiers journaux (logs) ?
    Je ne sais pas comment tracé le console dans windows. Dans l'environnement de développement, l'application ne plante pas, donc aucun message d'exception dans le console.
    C'est après le déploiement que les utilisateurs remonte l'information de ce que l'application se plante.
    Sous windows comment pourrai-je récupérée l'exception ?

  4. #4
    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 afkiba Voir le message
    Je ne sais pas comment tracé le console dans windows.
    Cela n'a pas de rapport avec Windows. On trace avec la méthode printStackTrace(). Ensuite, quand on exécute on exécute en console (avec java.exe, pas avec javaw.exe en double-cliquant sur un .jar runnable). Après la console, c'est juste une sortie, standard. On peut brancher ce qu'on veut sur le System.in, et envoyer dans un fichier, y compris dynamiquement au démarrage).
    Le mieux est de passer par une api de logging, ce qui permet de paramétrer ça de façon très flexible, et d'avoir des messages formattés (datés entre autre), de gérer des niveaux de logs, etc, éventuellement à partir d'une configuration qu'on peut activer ou pas dynamiquement.

    Citation Envoyé par afkiba Voir le message
    Dans l'environnement de développement, l'application ne plante pas, donc aucun message d'exception dans le console.
    Cela sent le problème de ressources (chargement), ou peut-être des soucis de création de fichiers (dossier temporaire interdit par exemple).

    Citation Envoyé par afkiba Voir le message
    C'est après le déploiement que les utilisateurs remonte l'information de ce que l'application se plante.
    Sous windows comment pourrai-je récupérée l'exception ?
    Le mieux c'est de prévoir un log (tu câbles une api de logging, log4j, slf4j ou flogger. Dans des fichiers que tu stockes dans une zone de stockage applicative (en général : System.getProperty("user.home")+"/TONAPP" on TONAPP est le nom de ton application (ou un nom en relation, vaut mieux éviter les caractères autres que lettres et chiffres) ; Sur Windows (uniquement sur Windows), tu peux utiliser System.getenv("LOCALAPPDATA")+"/TONAPP").
    Ensuite, tu paramètres la cible des appenders de log au démarrage de l'appli (par rapport à cet emplacement). Pour récupérer les logs, soit tu expliques comment le faire à la mano via l'explorateur (donc aller dans le répertoire de l'utilisateur (C:\Users\<nom>\<tonapp> ou C:\Users\<nom>\AppData\Local\<tonapp>) et récupérer les fichiers qui s'y trouvent pour te les envoyer). Soit si t'es sympa ou si tes utilisateurs ne sont pas très doués en info, tu fait un menu dans ton app qui zip le contenu de ce dossier et propose de le déposer dans un dossier, ou mieux, l'envoi direct par mail, ou le dépose dans un ftp, ou l'upload vers une URL HTTP, ou ce que tu veux... Bien sûr si l'appli passe dans un état qui te permet plus de démarrer et donc te passer par ce menu, il faut prévoir un moyen de lancer la commande qui fait tout ça en console, une procédure simple (avec un paramètre -send logs et l'email d'envoi ensuite).
    Après il faut bien être conscient que de toute manière il est possible que ça plante au plus tôt, avant ou pendant que tu reconfigures tes appenders. Il faut donc que pour une période d'initialisation ils soient le plus light possibles, et loguer dans un dossier facilement identifiable/accessible. Par exemple, qu'au démarrage, tu chosis un dossier dans le dossier de lancement de l'appli (System.getProperty("user.dir")) ou le dossier temporaire, (System.getProperty("java.io.tmpdir")) , tu écris dedans un fichier bidon (createTempFile() en "deleteOnExit"), et si ça plante tu affiches de suite un message comme quoi l'application ne peut être démarrée parce qu'elle au moins besoin d'avoir accès à ces dossiers.

    A noter que si tu as bien écrit le code des traces, vers System.in ou System.out, tu pourras paramétrer tes appenders pour que celles-ci aille dans les fichiers. Cela peut te permettre de mettre rapidement en place une procédure pour récupérer ces messages. Cela ne te dispense pas de repasser sur tout ces codes pour faire des logs plus qualifiés, et pas seulement pour les exceptions (parfois on a besoin de connaître les étapes intermédiaires qui ont conduit à l'exception). Lorsqu'on diffuse une application, c'est absolument indispensable.
    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.

  5. #5
    Membre confirmé
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Par défaut
    Une fois encore merci.
    Je vais m'approprié du message et puis appliqué les recommandations.
    Je reviendrai pour les résultats ou difficultés que rencontreraient.

  6. #6
    Membre confirmé
    Homme Profil pro
    Economiste
    Inscrit en
    Décembre 2016
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2016
    Messages : 114
    Par défaut Résolut
    Salut,
    Je viens vous dire que j'ai puis récupéré l'erreur. Il s'agit du problème de mémoire. Donc j'ai puis le corrigé en affectant plus de mémoire lors de la création du jar.
    une fois encore merci pour l'aide.

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

Discussions similaires

  1. Une application java qui regroupe toutes factures a payer
    Par stpaul04 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 12/04/2015, 15h51
  2. [Débutant] Création d'une application Java qui appelle des scripts Perl
    Par dark_angel91 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 31/05/2011, 19h31
  3. Debutant:création d'une application java qui appelle des scripts perl
    Par dark_angel91 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/05/2011, 07h04
  4. Réponses: 1
    Dernier message: 18/06/2009, 22h49
  5. [Debug] Comment débugger une application java qui tourne
    Par GyZmoO dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/03/2008, 08h56

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