Как запустить OpenOffice.org в качестве фонового процесса для подключения моего приложения к UNO Java API?

Прямо сейчас я запускаю OpenOffice.org 3.3 с аргументами «-accept = socket, host = 0, port = 8100; urp;» с помощью сценария оболочки (файл .bat в Windows, файл .sh в Solaris). OpenOffice.org запускается, и появляется главный экран (тот, на котором вы можете выбрать тип документа, открыть шаблон или открыть файл). В конце концов, этот экран будет отключен - я вижу, для этого есть аргументы.

После запуска OpenOffice.org я могу запустить свое приложение и создать свой документ с помощью библиотек UNO API для Java. На данный момент открыт и экран главного меню OpenOffice.org, и мой документ. Однако, когда я закрываю документ, экран главного меню OpenOffice.org также закрывается, и процесс OpenOffice.org завершается. Если я использую свое приложение для создания другого документа, оно не может подключиться (потому что процесс soffice больше не работает).

Моя цель - иметь возможность запустить процесс (или запустить его вместе с запуском системы, если пользователь настроит его таким образом), оставить его до явного завершения и продолжить прием новых сгенерированных документов.

Как добиться желаемого желаемого поведения? Прямо сейчас мой вариант использования заключается в том, что процесс soffice запускается из сценария оболочки, однако другой вариант использования заключается в том, что soffice настроен для запуска при запуске системы. Возможно ли мое поведение только при запуске процесса soffice другим способом (например, при запуске системы, а не при выполнении через пакетный сценарий)? Единственный другой вариант, который я вижу (который я рассматриваю сейчас), - это запустить процесс OpenOffice.org «по запросу» из моего Java-приложения, либо запустить его из Java-приложения и завершить его, когда приложение Java завершится, либо запустить процесс каждый раз, когда мне нужно создать новый документ.


person Thomas Owens    schedule 20.09.2011    source источник


Ответы (1)


Вы можете добавить параметры -invisible и -headless в командную строку при запуске soffice.exe.

Это скроет главное окно при OOo - очень похоже на «службу».

Насколько я помню, при открытии документа не будет отображаться даже главное окно OOo.

person a_horse_with_no_name    schedule 20.09.2011
comment
Это не моя проблема. Моя проблема в том, что процесс OO.org завершается при закрытии окна документа. После создания и отображения документа в приложении OO.org, если пользователь закрывает документ, процесс OO.org также завершается, не позволяя пользователю создать второй документ. - person Thomas Owens; 20.09.2011
comment
Я думаю, что -invisible предотвратит завершение процесса обслуживания. Попробуйте их. Это сработало для меня - person a_horse_with_no_name; 20.09.2011
comment
Я дважды проверю. Я знаю, Безголовый не добился того, что искал. - person Thomas Owens; 20.09.2011