You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2022/12/03 09:26:42 UTC

[openoffice] 05/06: Set the default JVM classpath to $OOO_BASE_DIR/program

This is an automated email from the ASF dual-hosted git repository.

ardovm pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit 69af28e78361a11b97a2d51674346f34921f0236
Author: Arrigo Marchiori <ar...@yahoo.it>
AuthorDate: Mon Oct 31 09:31:19 2022 +0100

    Set the default JVM classpath to $OOO_BASE_DIR/program
---
 .../plugins/sunmajor/pluginlib/sunjavaplugin.cxx   | 32 +++++++++++++++-------
 1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/main/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/main/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index 5134122491..3c1edd1419 100644
--- a/main/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/main/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -527,23 +527,38 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
     for (int i = 0; i < cOptions; i++)
     {
         rtl::OString sOptionString = arOptions[i].optionString;
-#ifdef UNX
-    // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
-    // in the class path in order to have applet support.
         if (sOptionString.match(sClassPathProp, 0) == sal_True)
         {
+            // This option sets the class path
             bool emptyClassPath = (sOptionString == sClassPathProp);
             char sep[] =  {SAL_PATHSEPARATOR, 0};
-            OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion);
+            OString sAddPath;
+            sClassPathOption = sOptionString;
+            // Add the installation directory as default class path
+            OUString macro(RTL_CONSTASCII_USTRINGPARAM("$OOO_BASE_DIR/program"));
+            rtl::Bootstrap::expandMacros(macro);
+            OUString instDirectory;
+            osl_getSystemPathFromFileURL(macro.pData, &instDirectory.pData);
+            sAddPath = rtl::OUStringToOString(instDirectory, RTL_TEXTENCODING_UTF8);
+            if (sAddPath.getLength()) {
+                if (!emptyClassPath) {
+                    sClassPathOption += rtl::OString(sep);
+                }
+                sClassPathOption += sAddPath;
+                emptyClassPath = false;
+            }
+#ifdef UNX
+            // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
+            // in the class path in order to have applet support.
+            sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion);
             if (sAddPath.getLength()) {
-                sClassPathOption = sOptionString;
                 if (!emptyClassPath) {
                     sClassPathOption += rtl::OString(sep);
                 }
                 sClassPathOption += sAddPath;
                 emptyClassPath = false;
-            } else
-                sClassPathOption = sOptionString;
+            }
+#endif
             if (!emptyClassPath) {
                 vecOptions.push_back(JavaVMOption());
                 vecOptions.back().optionString = (char *) sClassPathOption.getStr();
@@ -552,13 +567,10 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
         }
         else
         {
-#endif
             vecOptions.push_back(JavaVMOption());
             vecOptions.back().optionString = arOptions[i].optionString;
             vecOptions.back().extraInfo = arOptions[i].extraInfo;
-#ifdef UNX
         }
-#endif
         sOptionString = vecOptions.back().optionString;
         if (sOptionString.match(sClassPathProp, 0) == sal_True) {
             // Check for empty entries in the class path