How to Upgrade to Java 8

This page only applies to Weave 2.5 as Weave 2.6 is already using Java 8

Weave 2.5.x ships with Java 7 (the current version of Java when Weave 2.5.0 was first released) but it also works with Java 8 (as of July 2019 it does not work with Java 9 or later) and there are occasions where Weave should be updated to use Java 8 which can be done manually by following this process.

Because of a licensing change by Oracle for their Java version 1.8.0.191 is the latest version of the Oracle JRE (Java Runtime Environment) that can be used without a license from Oracle (unless it's for development or personal use) so this how-to will outline how to use that version, however you can use later versions from Oracle, if you obtain the correct license from them. Alternatively, and as we've done with Weave 2.6, you could use a JRE from another vendor that does not come with any licensing restrictions (such as OpenJDK).

This page covers upgrading to Oracle Java 8 for 64-bit computers only.

This page assumes that you're upgrading from the JRE installed as part of the Weave installation, which will be in the jre directory where Weave is installed.

If you did not select to install the JRE when you installed Weave then this process will be different.


Instructions

  1. Download the updated JRE archive
    1. Windows
    2. Linux
  2. Extract the downloaded archive to the Weave installation root directory
    1. For example if Weave is installed at d:\weave-2.5\ you would extract it directly into that directory, it will create a new jre1.8.0_191 directory at the location where it is extracted, in our example at d:\weave-2.5\jre1.8.0_191\.
  3. Ensure Weave is not running
  4. Rename the existing jre directory, for example to jre1.7.0_45
    1. Continuing our example this would rename d:\weave-2.5\jre\ to d:\weave-2.5\jre1.7.0_45\
  5. Rename the new jre1.8.0_191 directory to jre
    1. Continuing our example this would rename d:\weave-2.5\jre1.8.0_191\ to d:\weave-2.5\jre\
  6. Restart Weave and test


Alternative

If you already have a Java 8 JRE (or JDK) available on the server running Weave you can use that rather than downloading and installing the above JRE.

To do this you should edit startup.cmd or startup.sh and alter the java command, near the bottom of the file, to point to the java executable in the alternative Java 8 JRE.

If Weave is running as a service then the wrapper.java.command value in service\conf\wrapper.conf should be updated to point to the java executable in the alternative Java 8 JRE.

Note: that if you have spaces in the path for the alternative Java 8 JRE you may need to wrap the value in double quotes.


You might notice that when you start Weave after upgrading to Java 8 it will complain about two parameters that are no longer supported by Java 8, but were included in the startup parameters for Weave.

These are just warning and will not cause any issues but if you wish to remove them then edit startup.cmd (or startup.sh) and delete the parameters -XX:PermSize=64M -XX:MaxPermSize=192M form the JAVA_OPTS value (it should be near the top).

Also they should be removed from the wrapper.conf file, in the Weave service\conf\ directory, if Weave is run as a service.

By default they're set near the end of the file as one of the wrapper.java.additional.# properties, and you should remove the two startup parameters, -XX:PermSize=64M -XX:MaxPermSize=192M.

If this results in the particular additional parameter no longer having any value (as by default these two settings are provided as a single additional parameter so removing them will remove the entire additional parameter) you should completely remove that additional parameter and re-number the following entries so that their numbering continues to be sequential. For example the current version of wrapper.conf has these parameters set by wrapper.java.additional.2, so you would completely delete that line and then change wrapper.java.additional.3 to wrapper.java.additional.2, wrapper.java.additional.4 to wrapper.java.additional.3, etc.