Scriptom (groovy) оставляет процесс Excel запущенным - я что-то не так делаю? - PullRequest
0 голосов
/ 17 марта 2010

Я использую расширение Scriptom для Groovy 1.7.0, чтобы автоматизировать некоторую обработку с использованием Excel 2007 под Windows XP.

Кажется, что это всегда приводит к тому, что процесс Excel работает, несмотря на мой вызов quit для объекта Excel activeX (В документации к примерам Scriptom есть временная ссылка на это явление.)

Код выглядит так:


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

// do xls stuff

xls.Quit()

Видимое окно Excel исчезает, но в диспетчере задач остается процесс EXCEL (и при каждом запуске сценария накапливается больше процессов).

Нет сообщений об ошибках или исключений.

Может кто-нибудь объяснить, почему процесс Excel остался позади и есть ли способ предотвратить его?

Ответы [ 2 ]

4 голосов
/ 29 июня 2010

Это работает:

xls.Quit()
Scriptom.releaseApartment()

Состояние Javadocs:

В некоторых случаях JVM может закрыться до того, как все очищено, что может покинуть серверы автоматизации (особенно Excel) висит. Позвони прежде чем ваш сценарий выходит, чтобы получить правильное поведение от автоматизации серверы.

0 голосов
/ 06 мая 2010

Похоже, вы пропали без вести

xls.release();

как это сделано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...