如何将 OpenOffice.org 作为后台进程运行以将我的应用程序连接到使用 UNO Java API?

Posted

技术标签:

【中文标题】如何将 OpenOffice.org 作为后台进程运行以将我的应用程序连接到使用 UNO Java API?【英文标题】:How do I run OpenOffice.org as a background process for connecting my application to using the UNO Java API? 【发布时间】:2011-09-20 12:08:28 【问题描述】:

现在,我正在使用参数“-accept=socket,host=0,port=8100;urp;”启动 OpenOffice.org 3.3使用 shell 脚本(Windows 上的 .bat 文件,Solaris 上的 .sh 文件)。 OpenOffice.org 启动并出现主屏幕(您可以在其中选择文档类型、打开模板或打开文件)。不过,最终,此屏幕将被禁用 - 我看到有针对此目的的论据。

启动 OpenOffice.org 后,我可以启动我的应用程序并使用用于 Java 的 UNO API 库创建我的文档。此时,OpenOffice.org 主菜单屏幕和我的文档都打开了。但是,当我关闭文档时,OpenOffice.org 主菜单屏幕也会关闭,OpenOffice.org 进程也会终止。如果我使用我的应用程序生成另一个文档,则无法连接(因为 soffice 进程不再运行)。

我的目标是能够启动进程(或者让它从系统启动开始,如果用户以这种方式配置它),让它静置直到明确终止,并继续接受新生成的文档。

如何获得所需的行为?现在,我的用例是 soffice 进程是从 shell 脚本启动的,但另一个用例是 soffice 配置为在系统启动时运行。我的行为是否只能通过另一种方式运行 soffice 进程(如在系统启动时,而不是通过批处理脚本执行)?我看到的唯一其他选项(我现在正在考虑)是从我的 Java 应用程序“按需”启动 OpenOffice.org 进程,或者从 Java 应用程序启动它并在 Java 应用程序结束或启动时终止它每次我需要生成新文档时的过程。

【问题讨论】:

【参考方案1】:

您可以在启动 soffice.exe 时将参数 -invisible-headless 添加到命令行。

这将在 OOo 时隐藏主窗口 - 非常类似于“服务”。

据我所知,打开文档甚至不会显示 OOo 主窗口。

【讨论】:

这不是我的问题。我的问题是 OO.org 进程在文档窗口关闭时终止。在 OO.org 应用程序中生成并显示文档后,如果用户关闭该文档,OO.org 进程也会终止,从而阻止用户生成第二个文档。 我认为 -invisible 会阻止“服务进程”终止。试试看。它对我有用 我会仔细检查。我知道 -headless 没有达到我想要的效果。

以上是关于如何将 OpenOffice.org 作为后台进程运行以将我的应用程序连接到使用 UNO Java API?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Node.js 作为后台进程运行并且永不死亡?

将 React 应用程序作为后台进程运行

OpenOffice.org:正则表达式 - 跳过第一场比赛

如何在 OpenOffice.org 中为文本编写内联样式

OpenOffice.org 关闭后如何重新连接?

使用 Jodconverter 和 openoffice.org 将 PPT 转换为 JPG