命令行注册表工具

From Apache OpenOffice Wiki
Jump to: navigation, search


可以使用多种工具创建、修改和使用注册表。本节介绍一些常见的用法示例。regmerge 工具用于将多个注册表合并到现有或新注册表的一个子关键字中。例如:

 $ regmerge new.rdb / test1.rdb test2.rdb


test1.rdbtest2.rdb 的内容合并到注册表数据库 new.rdb 的根关键字下。关键字的名称被保留,因为这两个注册表都合并到根关键字中。如果 new.rdb 是已存在的注册表,它以前的内容仍将保存在 new.rdb 中,除非 test1.rdbtest2.rdb 中存在相同的关键字名称。在这种情况下,这些关键字的内容将被 test1.rdbtest2.rdb 中的内容改写。因此上述命令在语义上等同于:

 $ regmerge new.rdb / test1.rdb
 $ regmerge new.rdb / test2.rdb


以下命令将关键字 /UCR 下的 test1.urdtest2.urd 的内容合并到文件 myapp_types.rdb

 $ regmerge myapp_types.rdb /UCR test1.urd test2.urd


test1.urdtest2.urd 中关键字的名称应该只添加到 /UCR 关键字。这是一个真正有意义的方案,因为由 IDL 编译程序产生的文件具有 .urd 后缀。类型库可在程序中使用之前,需要运行 regmerge 工具,因为 UNO 需要在 /UCR 关键字下存在每个类型的说明。


组件注册工具

组件注册可以使用 regcomp 工具完成。下面,建立进程间连接所必需的组件将注册到 myapp_services.rdb 中。

 $ regcomp -register -r myapp_services.rdb \
                     -c uuresolver.dll \ 
                     -c brdgfctr.dll \ 
                     -c acceptor.dll \ 
                     -c connectr.dll \ 
                     -c remotebridge.dll


\ 表示命令行继续。选项 -r 给定要将信息写入其中的注册表文件。如果该文件不存在,则创建文件,否则加入新数据。如果存在旧的关键字,则改写这些关键字。注册表文件(此处是 myapp_services.rdb)一定不要同时由其他进程打开。选项 -c 后面是 已注册的库的单个名称。-c 选项可以多次给定。在上述示例中,需要注册的共享库以使用 UNO 进程间桥。


目前,注册 Java 组件更加复杂。它只在已安装的办公软件环境中可用,<OfficePath>/program 必须是当前的工作目录,办公软件安装必须指向有效的 Java 安装(可使用 jvmsetup 从 <OfficePath>/program 验证),并且 Java 必须已启用。请参阅工具 - 选项 - 常规 - 安全。在 OpenOffice.org 2.0 中,确保使用 Java 的选项对话框面板选择 Java(“工具”-“选项”- OpenOffice.org- Java)。


一定不要运行办公软件。在 Unix 上,LD_LIBRARY_PATH 环境变量必须还包含 javaldx 工具(随办公软件一起安装)列出的目录。


regcomp 可执行文件复制到 <officepath>/program 目录中。然后,必须使用以下参数调用 regcomp 工具:

 $ regcomp -register -r your_registry.rdb \
                     -br <officepath>/program/services.rdb \
                     -l com.sun.star.loader.Java2 \
                     -c file:///d:/test/JavaTestComponent.jar 


选项 -r (registry) 通知 regcomp 在何处写入注册数据,-br (bootstrap registry) 选项将 regcomp 指向从中读取常用类型的注册表。regcomp 工具不知道哪个库中具有 Java 加载程序。-l 选项给定加载程序的服务名称以用于组件,组件必须是 com.sun.star.loader.Java2。对于 C++ 组件,该选项可以忽略,因为 regcomp 默认情况下用于 com.sun.star.loader.SharedLibrary 加载程序。选项 -c 给定指向 Java 组件的文件 URL。


可以提供绝对文件 URL,也可以提供相对文件 URL。绝对文件 URL 必须以 file:/// 开始。其他格式的所有字符串都被解释为相对文件 URL,例如,3rdpartYcomp/filterxy.dll../../3rdpartycomp/filterxyz.dllfilterxyz.dll。相对文件 URL 是指相对于 PATH 变量(Windows 上)和 LD_LIBRARY_PATH 参数(Unixs 上)给定的所有路径。


由于历史原因,Java 组件需要使用绝对文件 URL。


Tip.png regcomp 工具应该只在组件的开发和测试阶段使用。而在部署最终组件时,应该使用 pkgchk 工具。请参阅 扩展



UNO 类型库工具

目前可以使用几种工具直接访问类型库。引入新的 UNOIDL 类型时,会用到这些工具。

  • idlc,将 .idl 文件编译为 .urd 注册表文件。
  • cppumaker,从 UNO C++ 绑定使用的类型注册表中生成给定 UNO 类型列表的 C++ 标头。
  • javamaker,从类型注册表生成给定类型列表的 Java .class 文件。
  • rdbmaker,通过从另一个注册表提取给定类型(包括从属类型)来创建新注册表,并用于为组件生成最小但完整的类型库。建立使用 UNO 组件的最小型应用程序时这个工具很有用处。
  • regcompare,比较类型库与引用类型库,并检查兼容性。
  • regmerge,将多个注册表合并到新的或已存在的注册表的特定子关键字中。
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages