Obtention de java.lang.ClassCastException: javax.swing.KeyStroke lors de la création d'un JSplitPane
-
02-07-2019 - |
Question
Je reçois une erreur non reproductible aléatoire lors de l'initialisation d'un JSplitPane dans JDK 1.5.0_08. Notez que cela ne se produit pas à chaque fois, mais environ 80% du temps:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.KeyStroke
at java.util.TreeMap.compare(TreeMap.java:1093)
at java.util.TreeMap.put(TreeMap.java:465)
at java.util.TreeSet.add(TreeSet.java:210)
at javax.swing.plaf.basic.BasicSplitPaneUI.installDefaults(BasicSplitPaneUI.java:364)
at javax.swing.plaf.basic.BasicSplitPaneUI.installUI(BasicSplitPaneUI.java:300)
at javax.swing.JComponent.setUI(JComponent.java:652)
at javax.swing.JSplitPane.setUI(JSplitPane.java:350)
at javax.swing.JSplitPane.updateUI(JSplitPane.java:378)
at javax.swing.JSplitPane.<init>(JSplitPane.java:332)
at javax.swing.JSplitPane.<init>(JSplitPane.java:287)
...
Des pensées? J'ai essayé de nettoyer et de reconstruire mon projet afin de minimiser la probabilité de corruption des fichiers de classe.
Modifier # 1 Voir http: // bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148 - semble être un bogue du JDK. Des solutions de contournement connues? Aucun ne figure sur la page de saisie du bogue.
La solution
Après avoir essayé Google sur le site bugs.sun.com, il semble qu'il s'agisse d'un bogue du JDK qui n'a été corrigé que dans le JDK 6.
Voir http://bugs.sun.com/bugdatabase/view_bug. bug_id = 6434148
Autres conseils
La même exception s’est produite lorsque j’ai mis à niveau java verion et db visualizer dint support jre7. et depuis La prise en charge de Java 7 a été introduite dans DbVisualizer 8.0 pour Windows et Linux / UNIX.
La prise en charge de Java 7 sur Mac OS X a été introduite dans DbVisualizer 9.1.
Donc, la solution qui a fonctionné pour moi: Windows / Unix / Linux: Le répertoire d’installation de DbVisualizer contient un répertoire .install4j, Dans ce répertoire, créez un fichier nommé pref_jre.cfg s'il n'existe pas déjà, Ouvrez le fichier dans un éditeur de texte, Ajoutez le chemin d'accès complet au répertoire racine de l'installation Java que vous souhaitez utiliser. Exemple: C: \ Program Files \ Java \ jre7
java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....
Si vous obtenez l'erreur ci-dessus après l'installation de java 7 dans dbviz puis ajoutez des variables d'environnement comme: 'DBVIS_JAVA_HOME' en tant que 'Nom de la variable' et chemin java comme par ex. "C: \ SWDTOOLS \ IBM \ RAD85 \ runtimes \ base_v7 \ java"