无法打开SQL worksheet,报ClassCastException类转换异常求助
报错信息
java.lang.ClassCastException: oracle.javatools.editor.language.plsql.PLSQLLanguageSupport cannot be cast to oracle.dbtools.raptor.plsql.language.PLSQLLanguageSupport at oracle.dbtools.raptor.plsql.folding.PlSqlFoldingModel.<init>(PlSqlFoldingModel.java:60) at oracle.dbtools.worksheet.folding.WorksheetFoldingPlugin.createModel(WorksheetFoldingPlugin.java:51) at oracle.javatools.editor.folding.CodeFoldingMargin.createCodeFoldingModel(CodeFoldingMargin.java:418) at oracle.javatools.editor.folding.CodeFoldingMargin.attach(CodeFoldingMargin.java:359) at oracle.javatools.editor.folding.AbstractCodeFoldingPlugin.attach(AbstractCodeFoldingPlugin.java:124) at oracle.javatools.editor.folding.AbstractCodeFoldingPlugin.installImpl(AbstractCodeFoldingPlugin.java:42) at oracle.dbtools.worksheet.folding.WorksheetFoldingPlugin.installImpl(WorksheetFoldingPlugin.java:42) at oracle.javatools.editor.plugins.AbstractEditorPlugin.install(AbstractEditorPlugin.java:43) at oracle.javatools.editor.BasicEditorPane.installPlugin(BasicEditorPane.java:2722) at oracle.dbtools.worksheet.editor.WorksheetGUI.<init>(WorksheetGUI.java:862) at oracle.dbtools.worksheet.editor.Worksheet.createGUI(Worksheet.java:1120) at oracle.dbtools.worksheet.editor.Worksheet.getWorksheetGUI(Worksheet.java:1494) at oracle.dbtools.worksheet.editor.Worksheet.getGUI(Worksheet.java:1293) at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPane.attachEditor(SplitPane.java:1118) at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPane.attachNewEditor(SplitPane.java:1112) at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPane.doLayout(SplitPane.java:585) at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.whenCurrentEditorChanges(NbEditorManager.java:1637) at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroup.whenCurrentEditorChanges(TabGroup.java:1026) at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroup.setCurrentTabGroupState(TabGroup.java:847) at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroup.addTabGroupState(TabGroup.java:129) at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:556) at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:533) at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.openEditor(NbEditorManager.java:401) at oracle.ide.cmd.OpenCommand.openWithNoProject(OpenCommand.java:336) at oracle.ide.cmd.OpenCommand.access$100(OpenCommand.java:63) at oracle.ide.cmd.OpenCommand$1.run(OpenCommand.java:268) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169) at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
问题根因
注:你提到的SQL Workbench实际为Oracle SQL Developer(报错栈中内部代号为Raptor),该错误为该软件典型的PL/SQL语言支持组件类加载冲突问题,通常出现在版本升级失败、第三方插件安装异常、本地配置缓存损坏的场景。
解决方案
按优先级选择以下方案操作即可:
- 方案1:重置本地缓存配置(不会丢失已保存的数据库连接,90%场景可解决问题)
- 完全关闭SQL Developer所有进程
- 打开对应系统的配置目录:
- Windows:
C:\Users\<你的系统用户名>\AppData\Roaming\SQL Developer\<对应版本号文件夹> - macOS:
/Users/<你的系统用户名>/.sqldeveloper/<对应版本号文件夹> - Linux:
/home/<你的系统用户名>/.sqldeveloper/<对应版本号文件夹>
- Windows:
- 删除或重命名该目录下的
system_cache文件夹 - 重新启动SQL Developer,软件会自动重建缓存配置,再打开工作表即可正常使用
- 方案2:禁用代码折叠功能(临时应急方案,不需要修改配置文件)
- 启动SQL Developer,暂时不要打开SQL工作表
- 依次点击顶部菜单
工具 > 首选项 > 代码编辑器 > 折叠 - 取消勾选
启用代码折叠选项,点击确定保存设置 - 再尝试打开SQL工作表即可正常使用
- 方案3:重装纯净版(前两种方案无效时使用)
- 卸载当前版本的SQL Developer
- 删除上文中提到的整个SQL Developer用户配置目录
- 下载官方最新稳定版SQL Developer,解压后直接运行,未安装第三方插件前先测试SQL工作表能否正常打开
内容的提问来源于stack exchange,提问作者Shruti
相关产品推荐
相关产品推荐

