我写了一个我需要在matlab上执行的groovy脚本。我将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对象作为参数。所以我通过matlab创建了一个javaObject函数。当我执行下面的代码时,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)
==>中的错误run_script at 7 console.loadScriptFile(脚本);
答案 0 :(得分:0)
我不知道这是否有用,我没有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));