2 # This file is part of the LibreOffice project.
4 # This Source Code Form is subject to the terms of the Mozilla Public
5 # License, v. 2.0. If a copy of the MPL was not distributed with this
6 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 # This file incorporates work covered by the following license notice:
10 # Licensed to the Apache Software Foundation (ASF) under one or more
11 # contributor license agreements. See the NOTICE file distributed
12 # with this work for additional information regarding copyright
13 # ownership. The ASF licenses this file to you under the Apache
14 # License, Version 2.0 (the "License"); you may not use this file
15 # except in compliance with the License. You may obtain a copy of
16 # the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 Overview of URE installation
20 -----------------------------
22 ELF platforms (Linux, Solaris, *BSD):
24 /opt/libreoffice/ure/LICENSE
25 /opt/libreoffice/ure/THIRDPARTYLICENSEREADME.html
26 /opt/libreoffice/ure/README
27 /opt/libreoffice/ure/bin/uno
28 /opt/libreoffice/ure/bin/regview
29 /opt/libreoffice/ure/bin/javaldx
30 /opt/libreoffice/ure/lib/libuno_cppu.so.3
31 /opt/libreoffice/ure/lib/libuno_cppuhelpergcc3.so.3
32 /opt/libreoffice/ure/lib/libuno_purpenvhelpergcc3.so.3
33 /opt/libreoffice/ure/lib/libuno_sal.so.3
34 /opt/libreoffice/ure/lib/libuno_salhelpergcc3.so.3
35 /opt/libreoffice/ure/share/java/unoloader.jar
36 /opt/libreoffice/ure/share/java/juh.jar
37 /opt/libreoffice/ure/share/java/jurt.jar
38 /opt/libreoffice/ure/share/java/libreoffice.jar
39 /opt/libreoffice/ure/share/java/ridl.jar
40 /opt/libreoffice/ure/share/misc/types.rdb
41 /opt/libreoffice/ure/share/misc/services.rdb
42 /opt/libreoffice/ure/lib/libxml2.so.2 [external]
43 /opt/libreoffice/ure/bin/uno.bin [private]
44 /opt/libreoffice/ure/lib/unorc [private]
45 /opt/libreoffice/ure/lib/libreglo.so [private]
46 /opt/libreoffice/ure/lib/libstorelo.so [private]
47 /opt/libreoffice/ure/lib/libunoidllo.so [private]
48 /opt/libreoffice/ure/lib/libxmlreaderlo.so [private]
49 /opt/libreoffice/ure/lib/libjvmaccesslo.so [private]
50 /opt/libreoffice/ure/lib/libjvmfwklo.so [private]
51 /opt/libreoffice/ure/lib/JREProperties.class [private]
52 /opt/libreoffice/ure/lib/jvmfwk3rc [private]
53 /opt/libreoffice/ure/lib/libgcc3_uno.so [private]
54 /opt/libreoffice/ure/lib/libjava_uno.so [private]
55 /opt/libreoffice/ure/lib/libunsafe_uno_uno.so [private]
56 /opt/libreoffice/ure/lib/libaffine_uno_uno.so [private]
57 /opt/libreoffice/ure/lib/liblog_uno_uno.so [private]
58 /opt/libreoffice/ure/lib/libjpipe.so [private]
59 /opt/libreoffice/ure/lib/libjuh.so [private]
60 /opt/libreoffice/ure/lib/libjuhx.so [private]
61 /opt/libreoffice/ure/lib/libsal_textenclo.so [private]
62 /opt/libreoffice/ure/lib/libbinaryurplo.so [private]
63 /opt/libreoffice/ure/lib/libbootstraplo.so [private]
64 /opt/libreoffice/ure/lib/libi18nlangtag.so [private]
65 /opt/libreoffice/ure/lib/libintrospectionlo.so [private]
66 /opt/libreoffice/ure/lib/libinvocadaptlo.so [private]
67 /opt/libreoffice/ure/lib/libinvocationlo.so [private]
68 /opt/libreoffice/ure/lib/libiolo.so [private]
69 /opt/libreoffice/ure/lib/libjavaloaderlo.so [private]
70 /opt/libreoffice/ure/lib/libjavavmlo.so [private]
71 /opt/libreoffice/ure/lib/libnamingservicelo.so [private]
72 /opt/libreoffice/ure/lib/libproxyfaclo.so [private]
73 /opt/libreoffice/ure/lib/libreflectionlo.so [private]
74 /opt/libreoffice/ure/lib/libstocserviceslo.so [private]
75 /opt/libreoffice/ure/lib/libuuresolverlo.so [private]
76 /opt/libreoffice/ure/share/java/java_uno.jar [private]
77 /opt/libreoffice/ure/share/misc/javavendors.xml [private]
81 Program Files\URE\LICENSE
82 Program Files\URE\THIRDPARTYLICENSEREADME.html
83 Program Files\URE\README
84 Program Files\URE\bin\uno.exe
85 Program Files\URE\bin\regview.exe
86 Program Files\URE\bin\cppu3.dll
87 Program Files\URE\bin\cppuhelper3MSC.dll
88 Program Files\URE\bin\purpenvhelper3MSC.dll
89 Program Files\URE\bin\sal3.dll
90 Program Files\URE\bin\salhelper3MSC.dll
91 Program Files\URE\java\unoloader.jar
92 Program Files\URE\java\libreoffice.jar
93 Program Files\URE\java\juh.jar
94 Program Files\URE\java\jurt.jar
95 Program Files\URE\java\ridl.jar
96 Program Files\URE\misc\types.rdb
97 Program Files\URE\misc\services.rdb
98 Program Files\URE\bin\libxml2.dll [external]
99 Program Files\URE\bin\uno.ini [private]
100 Program Files\URE\bin\reglo.dll [private]
101 Program Files\URE\bin\storelo.dll [private]
102 Program Files\URE\bin\unoidllo.dll [private]
103 Program Files\URE\bin\xmlreaderlo.dll [private]
104 Program Files\URE\bin\jvmaccesslo.dll [private]
105 Program Files\URE\bin\jvmfwklo.dll [private]
106 Program Files\URE\bin\JREProperties.class [private]
107 Program Files\URE\bin\jvmfwk3.ini [private]
108 Program Files\URE\bin\msci_uno.dll [private]
109 Program Files\URE\bin\java_uno.dll [private]
110 Program Files\URE\bin\cli_uno.dll [private]
111 Program Files\URE\bin\unsafe_uno_uno.dll [private]
112 Program Files\URE\bin\affine_uno_uno.dll [private]
113 Program Files\URE\bin\log_uno_uno.dll [private]
114 Program Files\URE\bin\jpipe.dll [private]
115 Program Files\URE\bin\jpipx.dll [private]
116 Program Files\URE\bin\juh.dll [private]
117 Program Files\URE\bin\juhx.dll [private]
118 Program Files\URE\bin\sal_textenclo.dll [private]
119 Program Files\URE\bin\binaryurplo.dll [private]
120 Program Files\URE\bin\bootstraplo.dll [private]
121 Program Files\URE\bin\i18nlangtag.dll [private]
122 Program Files\URE\bin\introspectionlo.dll [private]
123 Program Files\URE\bin\invocadaptlo.dll [private]
124 Program Files\URE\bin\invocationlo.dll [private]
125 Program Files\URE\bin\iolo.dll [private]
126 Program Files\URE\bin\javaloaderlo.dll [private]
127 Program Files\URE\bin\javavmlo.dll [private]
128 Program Files\URE\bin\namingservicelo.dll [private]
129 Program Files\URE\bin\proxyfaclo.dll [private]
130 Program Files\URE\bin\reflectionlo.dll [private]
131 Program Files\URE\bin\stocserviceslo.dll [private]
132 Program Files\URE\bin\uuresolverlo.dll [private]
133 Program Files\URE\bin\uwinapi.dll [private]
134 Program Files\URE\java\java_uno.jar [private]
135 Program Files\URE\misc\javavendors.xml [private]
137 %windir%\assembly\cli_basetypes.dll [GAC]
138 %windir%\assembly\cli_ure.dll [GAC]
139 %windir%\assembly\cli_uretypes.dll [GAC]
140 %windir%\assembly\cli_cppuhelper.dll [GAC]
141 %windir%\assembly\policy.1.0.cli_basetypes.dll [GAC]
142 %windir%\assembly\policy.1.0.cli_ure.dll [GAC]
143 %windir%\assembly\policy.1.0.cli_uretypes.dll [GAC]
144 %windir%\assembly\policy.1.0.cli_cppuhelper.dll [GAC]
146 Files marked as [external] are included in the URE installation because the URE
147 needs them and it cannot be guaranteed that they are available on a given
148 system. Applications using the URE may need those files too, so they are made
149 available as non-private files of the URE installation. However, in an ideal
150 world, those files would not need to be included in the URE installation.
152 Files marked as [private] are private to the URE installation. To avoid
153 stability issues, applications that use the URE should not access the
154 functionality of these files.
156 Files marked as [GAC] are installed in the Global Assembly Cache on Windows. The
157 file path reflects the path as seen in the Explorer with the Assembly
158 Cache Viewer Tool (Shfusion.dll) installed. The actual paths are different.
161 Public Files in a URE Installation
162 ----------------------------------
164 A URE installation contains the following public files:
166 - uno is the executable file that runs UNO components. For more details, see
167 the SDK Developer's Guide.
169 - regview is a tool that works with old-format binary registries that contain
170 UNO type or UNO service information. For more details, see the SDK Developer's
173 - javaldx is a helper program on Linux, Solaris, and *BSD that
174 enables Java executables to use a Java VM, such as OpenJDK or the Sun JDK/JRE.
175 Executables such as uno run this helper automatically.
177 - cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO
178 runtime dynamic libraries that client code can call. For details on the
179 functionality that these libraries offer, see the "C++ Reference" section of the
180 SDK HTML documentation. The corresponding C++ header files are not in the URE,
181 but rather in the SDK.
183 - libreoffice.jar and unoloader.jar are the public Java UNO runtime
184 Java[tm] Archives (JARs) that client code can call.
185 juh.jar, jurt.jar, ridl.jar, unoil.jar are still provided for backwards compatibility,
186 but are basically empty and have been merged into libreoffice.jar.
187 For details on the functionality that these files offer, see the
188 "Java UNO Runtime Reference" section of the SDK HTML documentation.
190 - types.rdb and services.rdb are preconfigured UNO type and service registries.
191 For more details, see the "Deploying a URE" section of this README.
197 By default, the URE is installed in /opt/libreoffice/ure on Linux,
198 Solaris, and *BSD, and in Program Files\URE on Windows. If you
199 want, you can override this location when you install the URE, for example, with
200 rpm --relocate on Linux. The URE is designed so that multiple instances of the
201 URE can coexist on a single system in different locations.
203 On Windows, the path to the installed URE is stored in the registry under the
204 path "HKEY_CLASSES_ROOT\Software\LibreOffice\URE" and key "Path".
207 UNO Deployment Variables
208 ------------------------
210 The URE installation is preconfigured with several UNO types and UNO services.
211 The available types and services are listed in the types.rdb and services.rdb
212 files respectively. The location of these files is stored by two UNO deployment
213 variables, namely UNO_TYPES and UNO_SERVICES. These variables are set up by a
214 unorc or uno.ini that is private to the URE installation. This private file
215 also contains the private deployment variables URE_INTERNAL_LIB_DIR,
216 URE_INTERNAL_JAVA_DIR, and URE_INTERNAL_JAVA_CLASSPATH, which are required by
219 The UNO_TYPES and UNO_SERVICES variables automatically search the following
220 locations for types.rdb and services.rdb files:
222 Linux, Solaris, and *BSD:
224 - <URE installation>/share/misc/ types.rdb and services.rdb, respectively
225 - any URLs listed in the public deployment variables URE_MORE_TYPES and
226 URE_MORE_SERVICES, respectively
230 - <URE installation>\misc\ types.rdb and services.rdb, respectively
231 - any URLs listed in the public deployment variables URE_MORE_TYPES and
232 URE_MORE_SERVICES, respectively
234 NOTE: The URE on Windows does not support a system-wide deployment of additional
235 types.rdb and services.rdb files. That is, you cannot store additional
236 types.rdb and services.rdb files in a Documents and Settings\All
237 Users\Application Data\URE directory.
239 URE_MORE_TYPES and URE_MORE_SERVICES each contain zero or more space-separated
240 URI descriptors. A URI descriptor is either a URI (denoting an individual file)
241 or a URI embedded in "<" and ">*" (denoting all the files contained non-
242 recursively within the directory denoted by the given URI).
244 The Java UNO environment needs type information in the form of Java class files
245 instead of rdb files. Additional types are searched for in any URLs listed in
246 the public deployment variable URE_MORE_JAVA_TYPES.
248 For details on how to override the UNO deployment variables, see the SDK
249 Developer's Guide or go to http://udk.openoffice.org/common/man/concept/
250 micro_deployment.html.
256 When a URE executable, such as uno, starts a Java VM, the URE Java Framework
257 searches for a suitable JDK/JRE installation. For more information on the URE
258 Java Framework, go to http://udk.openoffice.org/common/man/spec/
259 javavendorextension.sxw. The private javavendors.xml file in a URE installation
260 provides preconfigured support for various JDK/JRE versions. The private
261 jvmfwk3rc or jvmfwk3.ini file specifies the location of a suitable JDK/JRE
262 installation. When an executable tries to start a Java VM, the URE searches the
263 relevant Java settings file for information on a suitable JDK/JRE version.
265 NOTE: On any platform, you can delete the javasettings_${_OS}_${_ARCH}.xml file
266 if the file contains problematic stale data.
268 By default, the URE does not search for a Java settings file, but instead
269 searches for a suitable JDK/JRE installation whenever necessary. You can
270 override this by setting the URE_OVERRIDE_JAVA_JFW_SHARED_DATA and
271 URE_OVERRIDE_JAVA_JFW_USER_DATA deployment variables. If
272 URE_OVERRIDE_JAVA_JFW_USER_DATA is set, the URE will update the relevant
274 ${URE_OVERRIDE_JAVA_JFW_USER_DATA}/javasettings_${_OS}_${_ARCH}.xml when it
275 searches for a suitable JDK/JRE installation. You can also use the
276 UNO_JAVA_JFW_JREHOME deployment variable to specify the location of a JDK/JRE
277 installation. For more information on this variable, see
278 http://udk.openoffice.org/common/man/spec/javavendorextension.sxw.
280 The URE allows clients to extend the content of UNO_JAVA_JFW_CLASSPATH_URLS (see
281 http://udk.openoffice.org/common/man/spec/javavendorextension.sxw): The content
282 of the public deployment variable URE_MORE_JAVA_CLASSPATH_URLS, if set, is
283 added to the end of the URE's UNO_JAVA_JFW_CLASSPATH_URLS list.
285 You might experience problems in an SDK environment that uses different JDK/JRE
286 versions for the SDK and the URE. This problem arises when the OO_SDK_JAVA_HOME
287 SDK environment variable specifies a different Java VM than the Java VM that is
288 used in the URE Java Framework. See the "Installation Guide" section of the SDK
289 HTML documentation to find out how to set the OO_SDK_JAVA_HOME environment
293 C++ and Java UNO Components
294 ---------------------------
296 C++ UNO components run from within the uno executable can depend on an
297 environment in which the public C++ UNO runtime dynamic libraries (cppu,
298 cppuhelper, purpenvhelper, sal, salhelper) and the external dynamic libraries
299 (libxml2 etc.) are already available (that is, on Linux, Solaris, and
300 *BSD, a component dynamic library need not make sure that the UNO
301 runtime dynamic libraries it needs can be found on its RPATH).
303 Similarly, Java UNO components can depend on an environment in which the public
304 Java UNO runtime JARs are already available (that is, a component JAR need not
305 list in its manifest Class-Path the UNO runtime JARs it needs).
307 If a Java UNO component requires additional UNO types, use the UNO-Type-Path
308 manifest entry to specify the location of the UNO types. The UNO-Type-Path is
309 similar to the Class-Path manifest entry and can contain URLs of JARs and
310 directories that contain the Java classes that represent additional UNO types.
311 The UnoClassLoader evaluates the UNO-Type-Path manifest entry to ensure that the
312 additional UNO types are available to the Java UNO environment.
314 The UNO-Type-Path can have the following entries:
317 Current JAR does not contain UNO types.
320 Current JAR contains UNO types.
322 - UNO-Type-Path: any/other/jar.jar yet/another/jar.jar
323 Current JAR brings other JARs that contain UNO types.
325 - UNO-Type-Path: any/other/jar.jar <> yet/another/jar.jar
326 Current JAR and other JARs that the current JARs uses contain UNO types.
328 NOTE: If you do not include the UNO-Type-Path manifest entry, the URE assumes
329 that the current JAR contains UNO types.
331 If a Java application requires the Java UNO environment, the UnoClassLoader must
332 be set up to load the relevant Java classes. For example, Runner.java in the
333 uretest bundle is packed as runner.jar, which the makefiles use to launch the
334 javaclient.jar application. For more information, see
335 com.sun.star.lib.unoloader.UnoClassLoader and
336 com.sun.star.lib.unoloader.UnoLoader in the "Java UNO Runtime Reference" section
337 of the SDK HTML documentation.