在使用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错误。任何已知的解决方法?没有列在错误输入页面上。
答案 0 :(得分:2)
在bugs.sun.com上进行一些Google搜索后,看起来这可能是一个只在JDK 6中修复的JDK错误。
请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148
答案 1 :(得分:1)
当我升级了java版本和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
答案 2 :(得分:-1)
java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....
如果在dbviz中安装java 7后出现上述错误 然后添加环境变量,如: &#39; DBVIS_JAVA_HOME&#39;作为变量名称&#39;和java路径一样 对于前&#34; C:\ SWDTOOLS \ IBM \ RAD85 \运行时\ base_v7 \的java&#34;