الحصول على 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 verion و db visualizer dint jre7.وبما أن دعم Java 7 تم تقديمه في DBVISualizer 8.0 لنظام التشغيل Windows و Linux/UNIX.
تم تقديم دعم Java 7 على نظام التشغيل Mac OS X في DbVisualizer 9.1.
الحل الذي نجح بالنسبة لي:ويندوز/يونكس/لينكس:في دليل تثبيت DBVISualizer ، يوجد دليل .install4j ، في هذا الدليل ، قم بإنشاء ملف مسمى pref_jre.cfg إذا لم يكن موجودًا بالفعل ، افتح الملف في محرر نصوص ، أضف المسار الكامل إلى دليل الجذر لتثبيت Java تريد استخدامها.مثال:C:\ملفات البرنامج\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"