Removing Java 17 from IBM i and Watching BOB Compile Without any Java Log Drama
If you have been following my adventures in IBM i land, you know I have been wrestling with some pesky Java issues for a while now. Today, I am thrilled to report a major win: we finally yanked Java 17 out of my IBM i system completely. It is gone for good, sent packing to wherever naughty tech goes to retire. With that out of the way, it was time to dive back into rebuilding the IBM BOB project using the Code for IBM i extension in VS Code.
As expected, it was not all smooth sailing, but I squashed a few bugs and came out victorious.
Let me walk you through what happened, step by step, so you can avoid the same headaches if you are tackling something similar on your IBM i setup.
Why Remove Java 17? A Quick Recap
For those new here or needing a refresher, Java 17 had been causing all sorts of grief in my environment. It was generating endless log files that cluttered up the system, slowed down builds, and just generally making life miserable during compiles. These logs were not just annoying; they were symptomatic of deeper compatibility issues with some of our open-source tools on IBM i. IBM i systems are renowned for being rock-solid, but when you start layering in modern Java versions for things like build automation, conflicts can arise quickly.
Deciding to remove Java 17 was not taken lightly. But I needed to ensure it would not break other dependencies. On IBM i, Java is often installed via licensed program products (like 5770JV1 for Java SE). To remove it safely check this lesson
Once that was done, our IBM i felt a bit lighter. No more Java 17 lurking in the background. But the real test was ahead: rebuilding the BOB project.
Firing Up the BOB Build with Code for IBM i
If you are not familiar, IBM BOB (which stands for “Build Open Source on IBM i”) is a fantastic open-source toolset designed to make it easier to compile and manage OSS projects directly on your IBM i machine. It leverages makefiles and other Unix-like build systems, adapted for the IBM i environment. I love using it because it bridges the gap between traditional IBM i development and modern open-source workflows.
With Java 17 gone, I kicked off the build process. In Code for IBM i, you can run terminal commands like make directly on the connected IBM i system. I navigated to the BOB directory and fired up make all to rebuild everything.
Those Sneaky RULES.MK Issues
Of course, nothing in programming is ever that easy, especially on IBM i where file systems and build rules can get quirky. Right away, a couple of gremlins in the RULES.MK files reared their heads. RULES.MK is essentially a makefile that defines build rules, dependencies, and commands for compiling BOB components. These files are crucial because they handle how source files turn into objects, libraries, and executables on IBM i.
The problems I hit:
- Path Resolution Errors: My root RULES.MK had paths that were invalid, causing the make process to fail early.
- Dependency Mismatches: Another issue was the incorrectly typed name for my program – it did not have the .pgm.clle extension that I required. This led to compile errors complaining about missing includes or libraries.
After those fixes, I ran the build again, and boom. It compiled cleanly from start to finish. No errors, no warnings about missing components.
The Sweet Victory: No More Java Log Files
The compile success was great, but the real triumph? Those infernal Java log files are history. Without Java 17 in the mix, the build process no longer generates them. This means cleaner IFS directories, faster performance during compiles, and less time spent on cleanup scripts. If you have been dealing with similar log spam on your IBM i, removing unnecessary Java versions could be your ticket to sanity.
In terms of IBM i programming implications, this setup now allows for purer builds focused on native tools like ILE compilers. If you are working on RPG, CL, or even C/C++ projects integrated with OSS, BOB becomes even more reliable without the Java overhead.
Wrapping It Up
There you have it, folks. The Java 17 saga on my IBM i system seems to be officially over.
Since I removed it, fixed up the BOB build with some RULES.MK tweaks, and now everything runs smooth as silk using Code for IBM i.
If you are running into similar issues, give these steps a try and let me know in the comments how it goes. Stay tuned for more IBM i tips and tricks. Until next time, happy coding!
