MagicDraw中Groovy脚本无法识别JsonSlurper的问题求助
我尝试在MagicDraw中运行某Groovy脚本作为宏,但在第142行调用JsonSlurper时持续报错。添加导入语句import groovy.json.JsonSlurper;后,又出现新的错误。我的MagicDraw使用Groovy 3.0.7,已确认其库中包含JsonSlurper,但找不到问题根源。
我的原始需求是:处理Excel文件、新增列,再通过MagicDraw API创建框图、端口和接口。目前Excel处理已用Python完成,正在摸索MagicDraw API的使用。
错误信息
错误1
MagicDraw无法执行Groovy宏,请确认C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy文件正确。启动失败:C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy: 142: 无法解析类JsonSlurper @ 第142行,第18列。jsonSlurper = new JsonSlurper(); ^ 1错误 org.codehaus.groovy.control.MultipleCompilationErrorsException: 启动失败:C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy: 142: 无法解析类JsonSlurper @ 第142行,第18列。jsonSlurper = new JsonSlurper(); ^ 1错误
错误2
MagicDraw无法执行Groovy宏,请确认C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy文件正确。启动失败:C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy: 14: 无法解析类groovy.json.JsonSlurper @ 第14行,第1列。import groovy.json.JsonSlurper; ^ 1错误 org.codehaus.groovy.control.MultipleCompilationErrorsException: 启动失败:C:\Users\elevy\Downloads\rapid-modeling-tools-master\player-piano\player-piano-script.groovy: 14: 无法解析类groovy.json.JsonSlurper @ 第14行,第1列。import groovy.json.JsonSlurper; ^ 1错误
检查Groovy类路径配置
MagicDraw的宏运行环境可能未正确加载Groovy核心库。手动将Groovy的groovy-json-3.0.7.jar复制到MagicDraw安装目录下的lib文件夹,或在宏设置中指定额外类路径指向该jar包位置。使用全限定类名调用
若导入语句无效,直接用全限定类名替换第142行代码:def jsonSlurper = new groovy.json.JsonSlurper()验证版本兼容性
查看MagicDraw启动日志,确认实际加载的Groovy版本是否为3.0.7,排查是否有旧版本Groovy jar包干扰加载。检查执行上下文权限
MagicDraw宏的安全上下文可能限制类访问,可在脚本开头添加以下代码测试(仅用于测试环境,存在安全风险):System.setSecurityManager(null)
内容的提问来源于stack exchange,提问作者Ethan Levy

