Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Sorties de root > Programmes Java qui ne démarrent pas

Programmes Java qui ne démarrent pas

jeudi 17 mars 2011, par Julien H.

Les logiciels Arduino et Processing sont des applications Java Swing. Il faut le savoir et cela a quelques conséquences.

Le problème

Depuis quelques temps je n’arrivais plus à lancer Arduino ou Processing de manière épisodique. C’est-à-dire que lorsque je cliquais sur leur icône, le PC "moulinait" puis rien à l’écran.

Première piste, les JVM

Il existe plusieurs types de machines virtuelles Java pour ces deux logiciels :
 celle qui vient avec le logiciel
 une JRE (runtime) installée sur votre machine
 un JDK (développement) installé sur votre machine

J’avais résolu une première fois le problème en supprimant le répertoire Java dans le répertoire d’installation d’Arduino et/ou de Processing. Mais c’est revenu (après coup, je pense que c’est lorsque j’ai dû installer Flip et les outils pour OpenSCB).

Seconde piste, les applications Swing

Après avoir désinstallé et réinstallé plusieurs fois les différentes versions de Java, tant comme JRE que comme JDK (d’ailleurs Processing exige un JDK), j’ai eu l’idée de lancer un programme Java fourni dans le répertoire demo du JDK. Lui non plus ne se lance pas et j’obtiens cette erreur :

Exception in thread "main" java.lang.ExceptionInInitializerError
        at javax.swing.JPanel.updateUI(Unknown Source)
        at javax.swing.JPanel.<init>(Unknown Source)
        at javax.swing.JPanel.<init>(Unknown Source)
        at javax.swing.JPanel.<init>(Unknown Source)
        at javax.swing.JRootPane.createGlassPane(Unknown Source)
        at javax.swing.JRootPane.<init>(Unknown Source)
        at javax.swing.JFrame.createRootPane(Unknown Source)
        at javax.swing.JFrame.frameInit(Unknown Source)
        at javax.swing.JFrame.<init>(Unknown Source)
        at Stylepad.main(Stylepad.java:81)
Caused by: java.lang.IllegalArgumentException: 0 incompatible with Text-specific LCD contrast key
        at java.awt.RenderingHints.put(Unknown Source)
        at sun.awt.windows.WDesktopProperties.getDesktopAAHints(Unknown Source)
        at sun.awt.windows.WToolkit.getDesktopAAHints(Unknown Source)
        at sun.awt.SunToolkit.getDesktopFontHints(Unknown Source)
        at sun.awt.windows.WDesktopProperties.getProperties(Unknown Source)
        at sun.awt.windows.WToolkit.updateProperties(Unknown Source)
        at sun.awt.windows.WToolkit.lazilyInitWProps(Unknown Source)
        at sun.awt.windows.WToolkit.lazilyLoadDesktopProperty(Unknown Source)
        at java.awt.Toolkit.getDesktopProperty(Unknown Source)
        at javax.swing.UIManager.<clinit>(Unknown Source)
        ... 10 more

Et c’est grâce au Site du Zero que j’ai trouvé la solution.

Le fautif : ClearType

Je n’ai aucune idée de l’origine de ce petit logiciel. Sans doute une mise à jour ou bien l’installation d’un autre logiciel (un jeu vidéo ?). Toujours est-il que Microsoft propose un outil appelé "ClearType Tuner PowerToy" ici qui adoucit le contour des polices de caractères.

C’est vrai, ça marche :

Mais par contre, ça provoque cette erreur sur les applications Swing lorsque l’écran ou la carte graphique (j’imagine) ne supporte pas complètement cette fonctionnalité.

Donc lancez le logiciel ClearType disponible dans le panneau de configuration et désactivez l’option ClearType. C’est sûr qu’on a un peu mal aux yeux pendant quelques minutes, si on s’était habitué à de beaux caractères bien formés.

Mais au moins le problème est résolu et on peut enfin recommencer les développements (surtout que j’en connais un qui attend...).

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.