Double clic fichier .jar ne fonctionne pas

walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je suis un ingénieur électromécanicien très intéressé par l'informatique, et amoureux de la plateforme JAVA (grand salut pour les informaticiens et les développeurs en particulier).

Mon problème à ce moment, c'est l'exécution des fichiers ".jar" avec double clic.

NB: avec l'invite de commande, j'y arrive sans problème (il faut mentionner que j'avais un problème avant, et après quelque heures de recherche, je trouvais qu'il y avait un conflit dans la variable de système "path", où windows a copié des exécutables de java dans ses dossiers system32...)

A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Est-ce que le programme a besoin d'une console pour s'exécuter ? Parce qu'un programme Java utilise la console courante si elle existe (quand on la lance depuis une invite de commande par exemple), mais en aucun cas elle ne peux créer une nouvelle console, donc lorsqu'on ouvre un Jar avec un double-clic il n'y aura jamais de console associée (donc pas de System.out, System.err, ou System.in), ce qui peut provoquer des erreurs qui n'apparaissent pas quand tu les lances avec une console.

Je te proposes de modifier ton main pour faire apparaître graphiquement les erreurs (parce que si ça ne fonctionne pas, c'est qu'il y a des erreurs !)

public static void main(String[] args)
{
    try
    {
         // ici tout le code de ton main comme il était avant
    }
    catch (Throwable t) // Throwable = Exception + Error
    {
        StringBuilder trace = new StringBuilder(t.toString());
        for (StackTraceElement e : t.getStackTrace())
            trace.append("\n    at ").append(e);
        JOptionPane.showMessageDialog(null, trace.toString(), t.getClass().getSimpleName(), JOptionPane.ERROR_MESSAGE);
    }
}
0