Question & Answer
What are some of the Java options for running IBM i Access Client Solutions?
Beginning with IBM i Access Client Solutions (IBM i ACS) 18.104.22.168 released in June 2018, IBM i ACS is supported on Java 8 or higher. It is always suggested using the current update of a Long Term Support (LTS) version of Java. IBM recommends running with a current update of Java 11.
Since IBM i Access Client Solutions (IBM i ACS) depends on Java 8 or higher being made available for it, customers using IBM i ACS will have to decide what version and level of Java they will deploy, how it is deployed in their environment and maintain it at current levels of fixes and security updates.
These requirements have introduced questions as to what some of the options are for the Java to be used with IBM i ACS.
As stated above, IBM i Access Client Solutions (IBM i ACS) 22.214.171.124 released in June 2018, IBM i ACS is supported on Java 8 or higher. It is always suggested using the current update of a Long Term Support (LTS) version of Java. IBM recommends running with a current update of Java 11.
- Oracle has been and is continuing to make their Java technology available under the open GPL license for OpenJDK, and OpenJDK will work with and is a very good option for your IBM i Access Client Solutions environment.
- The preferred runtime is IBM Semeru Runtimes, based on OpenJDK with the IBM OpenJ9 JVM. It can be downloaded from here:
- Alternatively, An IBM Eclipse Temurin (OpenJDK with the Hotspot JVM) is available here:
- IBM offers support for the IBM OpenJ9 and Eclipse Temurin JVMs, through the IBM Runtimes for Business offering.
There are two offerings available as of March 2019: 5737-F61 and 5737-J49. They both allow you to get service subscriptions only for the systems on which you want support, rather than requiring service for every system in your enterprise. The second offering—the J49 offering—is newer (it became available in late November 2018) also provides monitoring for your enterprise’s Java installations.
- In early 2019 Amazon Web Services released Amazon Corretto, another no cost, multi-platform distribution of Open JDK. There are Java 8, Java 11 and Java 17 distributions available for Windows, Mac and Linux operating systems. Amazon Corretto can be downloaded from here:
- The Oracle Java 8 installable JRE with automated update capabilities available from (https://www.java.com/en/download/manual.jsp) is a valid option, but to obtain those updates after January 2019 to be used with an enterprise application like IBM i Access Client Solutions a commercial license would have to be obtained from Oracle. Please see Notes at the bottom of this document for more information on the Oracle Java licensing.
Due to the varied nature of how different environments may choose to deploy Java, IBM i Access Client Solutions (IBM i ACS) is very flexible and the rest of this will discuss some of the options with launching IBM i ACS with various Java deployments.
For the vast majority of deployments the install_acs* scripts are used to roll out IBM i ACS and those rely on the Start_Programs acslaunch programs. These acslaunch programs are also the recommended way to manually launch IBM i ACS. The acslaunch programs will investigate the client workstation common locations for compatible Java runtimes along these priorities.
- JAVA_HOME environment variable. If the User or System environment variable is pointing to the location of a valid, compatible Java runtime this will be used to launch IBM i ACS. Updating this JAVA_HOME environment variable is required with a Java deployment like the OpenJDK that does not have a wizard that installs Java to a specific location, but can be placed wherever on the client workstation. Here are some examples of the environment variable syntax:
- JAVA_HOME=C:\Program Files\Java\jre-10.0.2
- JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_181
- Oracle Java 8 or later installed location. Oracle Java by default is installed in C:\Program Files\Java (64bit) or C:\Program Files (x86)\Java (32bit). IBM i ACS attempts to place precedence on Java 10 or later if available.
- IBM Java 8 or later installed location. This will generally only be available if another IBM Java-based application like Eclipse or Rational has been installed and installs IBM Java in a common location. IBM Java by default is installed in a location like C:\Program Files\IBM\Java80 (64bit) or C:\Program Files (x86)\IBM\Java80.
IBM i ACS can also directly define the Java runtime to be used by the acslaunch program. One of the benefits of this approach is that this allows IBM i ACS to use a Java runtime that may not be available to the entire client workstation. There are also several ways to do this and here are a couple:
- Place the Java JRE folder next to the acslaunch program that is being used.
- Add a -vm statement to the acslaunch program call. This can even be used if IBM i ACS install_acs script has been used to create desktop icons, the properties of the desktop icon can be modified so that the Target: syntax is updated to pass this. Here is a syntax example:
- Access Client Solutions icon Target: C:\Users\user\IBM\ClientSolutions\Start_Programs\Windows _x86-64\acslaunch_win-64.exe -vm C:\OpenJDK8\jdk87172-bll
- ACS Session Mgr icon Target: C:\Users\user\IBM\ClientSolutions\Start_Programs\Windows _x86-64\acslaunch_win-64.exe -vm C:\OpenJDK8\jdk87172-bll /plugin=sm
Notes on Oracle Java licensing
In 2018 Oracle made the following Oracle Java SE 8 Release Updates statement:
Public updates for Oracle Java SE 8 will remain available for individual, personal use through at least the end of 2020.
Public updates for Oracle Java SE 8 released after January 2019 will not be available for business, commercial or production used without a commercial license. (https://www.java.com/en/download/release_notice.jsp)
Then Oracle made the following Oracle JDK 11 license statement:With JDK 11 Oracle has updated the license terms on which we offer the Oracle JDK.
The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from the licenses under which previous versions of the JDK were offered. Please review the new terms carefully before downloading and using this product.This license agreement includes the statement: "You may not use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application"
12 November 2021