Получение java.lang.ClassCastException: javax.swing.KeyStroke при создании JSplitPane

Я получаю случайную невоспроизводимую ошибку при инициализации 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. Любые известные обходные пути? На странице записи ошибок нет ни одного.

Ответы

Ответ 1

После того, как вы выполнили некоторые действия на сайте bugs.sun.com, похоже, что это может быть ошибка JDK, которая была исправлена ​​только в JDK 6.

См. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148

Ответ 2

Такое же исключение было брошено, когда я обновил java verion и db visualizer dint support jre7. и с тех пор Поддержка Java 7 была представлена ​​в DbVisualizer 8.0 для Windows и Linux/UNIX.

Поддержка Java 7 в Mac OS X была внедрена в DbVisualizer 9.1.

Итак, решение, которое сработало для меня: Windows/Unix/Linux:  В каталоге установки DbVisualizer есть каталог .install4j,   В этом каталоге создайте файл с именем pref_jre.cfg, если он еще не существует,   Откройте файл в текстовом редакторе,   Добавьте полный путь к корневому каталогу для установки Java, которую вы хотите использовать.   Пример: C:\Program Files\Java\jre7

Ответ 3

java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....

Если вы получаете ошибку выше, после установки java 7 в dbviz затем добавьте переменные среды как: "DBVIS_JAVA_HOME" в качестве "Variable Name" и java-пути, например напр. "C:\SWDTOOLS\IBM\RAD85\времени работы \base_v7\Java"