用matlab运行groovy脚本

用matlab运行groovy脚本,matlab,groovy,Matlab,Groovy,我编写了一个groovy脚本,需要在matlab上执行。我将groovy-all.jar文件添加到matlab的JavaClassPath中,并且我能够运行一些命令,例如通过创建groovy控制台对象将jar添加到groovy ClassPath中 javaaddpath('C:\Users\rx49\Desktop\DoseWatch\QC_Project\Script_QA_images\groovy-all-2.4.7.jar'); javaaddpath('C:\Program File

我编写了一个groovy脚本,需要在matlab上执行。我将groovy-all.jar文件添加到matlab的JavaClassPath中,并且我能够运行一些命令,例如通过创建groovy控制台对象将jar添加到groovy ClassPath中

javaaddpath('C:\Users\rx49\Desktop\DoseWatch\QC_Project\Script_QA_images\groovy-all-2.4.7.jar');
javaaddpath('C:\Program Files\Java\jre1.8.0_91\lib\rt.jar');
console=groovy.ui.Console();
pth='C:\Users\rx49\Desktop\DoseWatch\QC_Project\Script_QA_images\file.groovy';
script = javaObject('java.io.File', pth)
console.loadScriptFile(script);
console.loadScriptFile函数仅将java.io.File对象作为参数。所以我通过MatlabJavaObject函数创建了一个。当我执行以下代码时,matlab向我发送以下错误:

???发生Java异常: java.lang.NullPointerException:无法对null对象调用方法edt()

at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)

at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)

at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)

at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:57)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)

at groovy.ui.Console.loadScriptFile(Console.groovy:649)
==>在7时运行_脚本时出错
console.loadScriptFile(脚本)

我不知道这是否可行,我没有Matlab或您的脚本,但感觉您应该能够做到:

javaaddpath('C:\Users\rx49\Desktop\DoseWatch\QC_Project\Script_QA_images\groovy-all-2.4.7.jar');
pth='C:\Users\rx49\Desktop\DoseWatch\QC_Project\Script_QA_images\file.groovy';
shell = groovy.lang.GroovyShell();
matrix = shell.run(javaObject('java.io.File', pth));

?这涉及到创建一个包含groovy文件中的方法的jar文件,对吗?我尝试使用这个API:我不知道你在尝试什么,你是如何做的,或者你会遇到什么错误。。。寻求帮助在这种情况下会很棘手的。我会尽量精确。