1

使用 JDK 1.5.0_08 初始化 JSplitPane 时出现随机不可重现的错误。请注意,这并非每次都会发生,而是大约 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 错误。任何已知的解决方法?错误条目页面上没有列出任何内容。

4

3 回答 3

2

在 bugs.sun.com 上进行了一些谷歌搜索后,这看起来可能是一个 JDK 错误,仅在 JDK 6 中修复。

请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148

于 2008-09-22T09:08:47.147 回答
1

当我升级 java verion 和 db Visualizer dint 支持 jre7 时,抛出了同样的异常。并且因为在 Windows 和 Linux/UNIX 的 DbVisualizer 8.0 中引入了对 Java 7 的支持。

DbVisualizer 9.1 中引入了对 Mac OS X 上的 Java 7 的支持。

所以对我有用的解决方案: Windows/Unix/Linux: 在 DbVisualizer 安装目录中有一个 .install4j 目录,如果该目录不存在,则在此目录中创建一个名为 pref_jre.cfg 的文件,在文本编辑器中打开该文件, 添加要使用的 Java 安装的根目录的完整路径。示例:C:\Program Files\Java\jre7

于 2014-03-03T10:18:53.840 回答
-1
java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....

如果在 dbviz 中安装 java 7 后出现上述错误,请添加环境变量,如:'DBVIS_JAVA_HOME' 作为'变量名'和 java 路径,如 ex。“C:\SWDTOOLS\IBM\RAD85\runtimes\base_v7\java”

于 2015-12-07T09:00:35.537 回答