Scriptom(groovy)离开Excel进程运行 – 我做错了什么?

我正在使用Groovy 1.7.0的Scriptom扩展,在Windows XP下使用Excel 2007自动执行一些处理。

这似乎总是让Excel进程运行,尽pipe在excel的activeX对象上我退出了。 (在Scriptom示例文档中也有对这种现象的引用。)

代码如下所示:

import org.codehaus.groovy.scriptom.ActiveXObject; def xls = new ActiveXObject("Excel.Application") xls.Visible = true // do xls stuff xls.Quit() 

可见的Excel窗口确实消失了,但是任务pipe理器中还剩下一个EXCEL进程(并且每次运行脚本时都会有更多的进程堆积起来)。

没有错误信息或例外。

任何人都可以解释为什么Excel进程留下,有没有办法阻止它发生?

这工作:

 xls.Quit() Scriptom.releaseApartment() 

javadocs状态:

在某些情况下,JVM可以在清理所有内容之前closures,这可能会导致自动化服务器(特别是Excel)挂起。 在脚本退出之前调用它以从自动服务器获得正确的行为。

看起来你缺less了

 xls.release(); 

就像在这里完成的一样。