This section lists the Java related configurations, that you need to consider in order to be able to run InterFormNG2 on the IBM i platform.
•Java version 17 must be installed. InterFormNG2 is a Java based application that has been tested and verified to run on the 64bit version of JAVA 17.
•It is highly recommended (and sometimes even necessary) to upgrade Java 17 to the latest update. This is covered here.
•In case of a problem concerning the InterFormNG2 service job, then it can be helpful to end the IFORMNG2 subsystem and manually start up InterFormNG2 in QShell with the commands found in the configuration file, service-as400.sh. This file is found in the IFS inside: /iformng2/InterFormNG-shell/Core.
•You should also consider/verify if your IBM i is running any other JAVA based applications. If already running JAVA on the IBM i, make sure that the installation(s) are made without system wide changes to the general JVM environment.
•In cases when running on an IBM i with a "Modified" JAVA version, it can result in problems when you try to start InterFormNG2. Based on experience it is not always neither simple nor fast to help identify/locate, whatever that has been modified. Examples of things that makes a JAVA installation "Modified" are listed below:
•Any change in system wide properties, that are related to Java. Example: ADDENVVAR ENVVAR('xxxx') LEVEL(*SYS).
•Any use of custom made JAVA System.properties files.
•Any addition/changes/removal of files in folder(and subfolders) to QOpenSys\QIBM\*
Examples: Changes to the file "java.security" -- Addition/Removal of JAR-files or other files.
•If a problem can be traced back to the existence of such a modification - A fee to find and correct the change may be charged.
•You should ensure, that InterFormNG2 is setup to run on 64 bit Java 17 (and especially not on an older version or a 32 bit version). The Java settings of InterFormNG2 are set via option 92. Change NG2 installation on the IFORMNG2/IFORMNG2 menu. The path to java is set via the JAVA_HOME option and should normally be set to: /QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit.
•An important prerequisite for running Java 17 on the IBM i platform is, that at least one font is directly available. Java 17 is from IBM not delivered with built-in fonts, so fonts must be provided or linked to. This is covered in the section below:
•Some IBM i machines are too slow to properly run InterFormNG2. If you are in doubt, if your machine is fast enough, then you should run the speed test before proceeding. Remember, that you could consider to run InterFormNG2 on a Windows server and process files and spooled files from the IBM i on this machine instead as covered here.
Oracle are removing fonts from the Linux based OpenJDK line of javas (including on the IBM i platform), so you have to install or link to fonts in order for Java to "fall back" to original OS fonts.
If you do not set this up InterFormNG2 might stop with the error message:
No physical fonts found
In the designer the error looks like this:

and you might see this error when you try to preview the result as a PDF:

The issue is described here:
Ref. https://docs.oracle.com/en/java/javase/17/intl/font-configuration-files.html
There are (at least) two ways to solve this:
1. Install the fontconfig option in Java 17
The best and right way to solve this is to install the fontconfig in Java 17. In order to do that you first need to activate Open source support on IBM i. This is covered on this IBM i link:
https://www.ibm.com/support/pages/getting-started-open-source-package-management-ibm-i-acs
Afterwards you can install fontconfig e.g. from a 5250 emulation if you select Actions and then SSH Terminal:

That starts an SSH Terminal session, where you first sign on and then run the command: /QOpenSys/pkgs/bin/yum install fontconfig

Then you will see something like below, where you need to confirm the install with 'y':

A successful installation looks like this:

2. Copy the fonts from Java 8 into Java 17
Another temporary solution/workaround is to copy the Java 8 fonts and make them available for Java 17. This is only temporary as the fonts are cached and this cache will run out at some point. When the cache runs out you will see the error: 'No physical fonts found' again and a restart of the IFORMNG2 subsystem is required to regain the fonts. The experience is, that the cache last one or two days.
You can do that with this command:
CPY OBJ('/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/jre/lib/fonts') TODIR('/QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit/lib') SUBTREE(*ALL)
After running this command you will need to restart the IFORMNG2 subsystem to activate this change.