Получение java.lang.ClassCastException:javax.swing.KeyStroke при создании JSplitPane
-
02-07-2019 - |
Вопрос
Я получаю случайную невоспроизводимую ошибку при инициализации JSplitPane с помощью JDK 1.5.0_08.Обратите внимание, что это происходит не каждый раз, а примерно в 80% случаев:
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)
...
Мысли?Я попытался очистить и перестроить свой проект, чтобы свести к минимуму вероятность повреждения файлов классов.
Редактировать №1 Видеть http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148 - похоже, это ошибка JDK.Какие-нибудь известные обходные пути?Ни один из них не указан на странице записи ошибок.
Решение
После некоторого поиска в Google на bugs.sun.com выяснилось, что это ошибка JDK, которая была исправлена только в JDK 6.
Видеть http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148
Другие советы
То же исключение возникло, когда я обновил версию Java и визуализатор базы данных с поддержкой jre7.А так как поддержка Java 7 была введена в DBVisualizer 8.0 для Windows и Linux/Unix.
Поддержка Java 7 в Mac OS X была представлена в DbVisualizer 9.1.
Итак, решение, которое сработало для меня:Windows/Unix/Линукс:В каталоге установки dbvisualizer есть каталог .install4j, в этом каталоге Создайте файл с именем pref_jre.cfg, если он еще не существует, откройте файл в текстовом редакторе, добавьте полный путь к корневому каталогу для установки Java Вы хотите использовать.Пример:C:\Program Files\Java\jre7
java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....
Если вы получаете выше ошибки после установки Java 7 в DBVIZ, добавьте вариации среды, как:'DBVIS_JAVA_HOME' как «Имя переменной» и путь Java, как для Ex."C:\SWDTOOLS\IBM AD85 untimes\base_v7\java"