2016-07-13 10 views
-1

Я написал отличный скрипт, который мне нужно выполнить на матлабе. Я добавил файл groovy-all.jar в JavaClassPath от Matlab, и я могу запустить несколько команд, например, добавить банки для groovy ClassPath, создав массивный консольный объект.Запуск groovy скриптов с matlab

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: Невозможно вызвать метод (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 на 7 console.loadScriptFile (сценарий);

+0

http://undocumentedmatlab.com/blog/use-groovy-in-matlab? –

+0

Это связано с созданием файла jar, содержащего методы в файле groovy, правильно? –

+0

Я пытался использовать этот API: http://docs.groovy-lang.org/latest/html/gapi/groovy/ui/Console.html –

ответ

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));