When you ask recent IT graduates about the IBM i they either have never heard of it or think of green screen and RPG. The IBM i has been more than green screen and RPG for a long time and has progressed along with the needs of its customer base, always keeping pace with current trends. It was 20 years after the original release of the IBM System/3x, lineup that Sun released it first version of java. And java was not widely used until a few years ago. Those first releases of Sun java performed poorly. The first releases of java on the IBM i had the same poor performance issues, but with the recent releases of the OS and Power hardware, java performance on the IBM i is now inline with other platforms. Unlike Windows and Linux systems the IBM i does not require system restarts to correct application problems. In fact, most IBM i systems only get restarted when a new version of the OS is installed.
IBM created Qshell (qsh) and other utilities to use with java and the Integrated File System. I would recommend installing operating system options 30 (Qshell) and 33 (PASE) along with the java developer kit. You can use qsh to manually enter commands or run shell scripts. There is also API QP2SHELL that can be used to automate running of shell scripts and commands from within CL programs.
There are still some issues with java on the IBM i like the lack of a native GUI interface and inconsistencies in the J9 JVM. To access the GUI you need to use VNC or XWindows. The Java offerings with release i 6.1 include Classic and IBM Technology for Java (J9) that comes in both a 32 and 64 bit version. The Classic JVM is significantly slower than the J9 JVM, but matches the Sun JVM. IBM wrote J9 for Linux, AIX, and the IBM i. There are differences in the Classic and J9 JVMs where something may work fine in Classic but throws exceptions in the J9. We normally use the J9 JVM because of the performance issues identified in the Classic JVM. When we encounter a problem with our applications behaving differently on the IBM i versus Windows or Linux, we will run the application using the Classic JVM to see if it is a J9 JVM issue before tearing through code to diagnose the problem. I’d suggest that anyone running java on the IBM i to install the Classic with J9 for this reason.
We’ve also uncovered a few things with VNC, XWindows, and the GUI that were causing us some grief which I’ll discuss in a future blog.