# Keeping Java 8 build hosts (AIX, Solaris, HP-UX, RHEL 6) as agents of a current Jenkins

**URL:** <https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378>\
**Category:** Using Jenkins\
**Tags:** remoting, java\
**Created:** [October 13, 2026, 5:52pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378 "2026-10-13T17:52:22Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![shenxianpeng](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/shenxianpeng/32/5375_2.png) [@shenxianpeng](https://community.jenkins.io/u/shenxianpeng)\
**Post date:** [October 13, 2026, 5:52pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/1 "2026-10-13T17:52:22Z")

</div>

Hi all,

Since Jenkins needs Java 21 on agents as well as on the controller, AIX 7.1, Solaris, HP-UX, and RHEL 6 build hosts can’t connect to an up-to-date controller: those systems stop at Java 8. The usual workarounds are a second, frozen Jenkins for those platforms, or building them by hand or other workarounds, and neither survives a security audit for long.

I’ve been working on **Agent8 for Jenkins** : [GitHub - keelinfra/agent8: Run a native Jenkins agent on Java 8 (also 11 and 17) legacy build hosts, connected to a current Jenkins controller on Java 21+. · GitHub](https://github.com/keelinfra/agent8)

It’s the official `agent.jar` with its bytecode downgraded to Java 8 (or 11/17) using JvmDowngrader, plus a small Java agent that downgrades classes the controller sends at runtime and keeps serialization compatible (pinned `serialVersionUID`s, the `List.of`/`Stream.toList()` serial form, an OpenJ9 fix). The host stays a normal inbound agent: labels, `sh`, file steps, `junit`, `stash`, aborts, Git checkout and `withCredentials` work.

`install.sh` fetches the build matching the controller’s remoting version, checks its sha256, keeps your original jar as a backup, and you restart the agent with the same command.

Status, honestly:

- Tested in CI against the current LTS and weekly on Linux with HotSpot 8 (CentOS 6.10), OpenJ9 8, and HotSpot 11.
- Real AIX, Solaris, and HP-UX are experimental: not fully run on real hardware yet.
- Inbound agents only; SSH Build Agents isn’t supported yet.
- If you use the Versions Node Monitors plugin, set its JVM Version monitor to not disconnect.
- Not an official Jenkins project.

I’d really like to hear from anyone with AIX/Solaris/HP-UX agents who can try it, and about plugins that break on it. Feedback on the approach is welcome too.

---

<div class="post-metadata">

**Author:** ![MarkEWaite](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/markewaite/32/20_2.png) [@MarkEWaite](https://community.jenkins.io/u/MarkEWaite)\
**Post date:** [October 14, 2026, 3:24am UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/2 "2026-10-14T03:24:10Z")

</div>

> [@shenxianpeng](#):
>
> Feedback on the approach is welcome too.

The OpenJ9 virtual machine was [abandoned](https://github.com/jenkinsci/remoting/issues/1223#issuecomment-3577915365) by the [Jenkins Platform SIG](https://www.jenkins.io/sigs/platform/) in August 2021. We did not have enough interest in it from SIG participants and there were real problems with it.

Some of the issues with OpenJ9 included:

- [Java 25 warnings after connected to an inbound agent · Issue #26518 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/26518)
- [[JENKINS-71227] Agent on AIX stops working with Jenkins 2.387.3 · Issue #18642 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/18642)
- [[JENKINS-66973] Memory corruption when switching to OpenJ9 · Issue #12224 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/12224)
- [[JENKINS-62150] OpenJ9 Docker images · Issue #11509 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/11509)
- [[JENKINS-59396] AWT initialized even with -Djava.awt.headless=true · Issue #20611 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/20611)
- [[JENKINS-60979] Installation of Plugin fails on LibertyProfile due using the wrong SocketFactory · Issue #20843 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/20843)
- [[JENKINS-59396] AWT initialized even with -Djava.awt.headless=true · Issue #20611 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/20611)
- [[JENKINS-56679] SecurityException when trying to run a maven job with OpenJ9 JVM · Issue #20344 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/20344)
- [[JENKINS-54196] Regression: jnidispatch (/com/sun/jna/linux-ppc64/libjnidispatch.so) not found in resource path · Issue #20079 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/20079)
- [[JENKINS-53029] Does anyone know if Jenkins supports IBM J9 plus TLSv1.2 ? · Issue #19943 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/19943)
- [[JENKINS-26088] Cant save changes while Configuring System · Issue #23688 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/23688)
- [[JENKINS-26087] Jobs sitting on the queue waiting for next available executor. · Issue #23687 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/23687)
- [[JENKINS-23176] IBM J9 seems to be unsupported on Jenkins · Issue #23133 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/23133)
- [[JENKINS-22006] IBM JDK agent disconnects in 1.532.2 · Issue #22920 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/22920)
- [[JENKINS-18083] SEVERE: Timer task [...] failed · Issue #14588 · jenkinsci/jenkins · GitHub](https://github.com/jenkinsci/jenkins/issues/14588)

---

<div class="post-metadata">

**Author:** ![shenxianpeng](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/shenxianpeng/32/5375_2.png) [@shenxianpeng](https://community.jenkins.io/u/shenxianpeng)\
**Post date:** [October 14, 2026, 9:33pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/3 "2026-10-14T21:33:35Z")

</div>

Thank you Mark, good to know. [README](https://github.com/keelinfra/agent8/blob/797f2da650f6cb3ecb31e2488b0e0cb8d9370798/README.md) now says J9 is best effort.

---

<div class="post-metadata">

**Author:** ![teilo](https://avatars.discourse-cdn.com/v4/letter/t/ecd19e/32.png) [@teilo](https://community.jenkins.io/u/teilo)\
**Post date:** [October 15, 2026, 2:26pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/4 "2026-10-15T14:26:57Z")

</div>

FWIW for RHEL6/Centos Amazon Corretto claims support for JDK21

> **[What operating systems does Corretto 21 support? - FAQs](https://aws.amazon.com/corretto/faqs/#awt-content-topics%23what-operating-systems-does-corretto-21-support-5-trigger)**
>
> Corretto 21 installation packages are distributed by Amazon for Linux (glibc), Linux (musl-libc), Windows, and macOS. | Frequently asked questions about Amazon Corretto a no-cost, multiplatform, production-ready distribution of the Open Java...

---

<div class="post-metadata">

**Author:** ![shenxianpeng](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/shenxianpeng/32/5375_2.png) [@shenxianpeng](https://community.jenkins.io/u/shenxianpeng)\
**Post date:** [October 15, 2026, 5:33pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/5 "2026-10-15T17:33:17Z")

</div>

Thanks James, didn’t know Corretto 21 still covers RHEL 6, that’s the easier route for x86 boxes and I’ll add it to the [README](https://github.com/keelinfra/agent8/blob/41e0ae1f570a4304d12df29a32a49519eba0e8ec/README.md)

---

<div class="post-metadata">

**Author:** ![samrocketman](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/samrocketman/32/4631_2.png) [@samrocketman](https://community.jenkins.io/u/samrocketman)\
**Post date:** [October 16, 2026, 5:18am UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/6 "2026-10-16T05:18:38Z")

</div>

The JDK the agent uses with the controller does not need to be the JDK to build a product on an agent. You can have an `agent.jar` running on Java 21 execute a job that builds an application on Java 1.8 (or even older!) via its shell script.

From a build tools perspective I believe there are two options:

- run the build on an older JDK (I don’t generally advise this but it is the easiest option)
- More difficult but longer term maturity: Adopt a modern Java development tool chain and target jdk8 byte code compatibility. Your application can build and test on Java 21 and still ship artifacts capable of running on Java 8.

Either option produces a Java 8 result. Both options still mean your agent.jar is java 21 since agent java version is irrelevant to the application being built.

Linux and Unix can have multiple java versions installed at the same time

---

<div class="post-metadata">

**Author:** ![mawinter69](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/mawinter69/32/1625_2.png) [@mawinter69](https://community.jenkins.io/u/mawinter69)\
**Post date:** [October 16, 2026, 7:14am UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/7 "2026-10-16T07:14:11Z")

</div>

The problem here is that when you’re running an old OS there is just no newer Java. So you’re not able to connect such a machine to a recent Jenkins normally.  
Though there are other ways to overcome this, what I once did was to checkout everything on a linux machine, then copy the workspace with scp over to the machine, execute the build via ssh and then copy the results back to the linux machine. A bit tricky is handling parallel builds and when a build gets cancelled. Luckily I no longer need to support those old platforms.

---

<div class="post-metadata">

**Author:** ![shenxianpeng](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/shenxianpeng/32/5375_2.png) [@shenxianpeng](https://community.jenkins.io/u/shenxianpeng)\
**Post date:** [October 17, 2026, 7:29am UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/8 "2026-10-17T07:29:01Z")

</div>

> [@mawinter69](#):
>
> The problem here is that when you’re running an old OS there is just no newer Java. So you’re not able to connect such a machine to a recent Jenkins normally.

True, thanks for sharing. That setup gets tricky and a bit complex, especially the parallel builds and cancels you mentioned.

---

<div class="post-metadata">

**Author:** ![shenxianpeng](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/shenxianpeng/32/5375_2.png) [@shenxianpeng](https://community.jenkins.io/u/shenxianpeng)\
**Post date:** [October 17, 2026, 7:43am UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/9 "2026-10-17T07:43:49Z")

</div>

> [@samrocketman](#):
>
> The JDK the agent uses with the controller does not need to be the JDK to build a product on an agent. You can have an `agent.jar` running on Java 21 execute a job that builds an application on Java 1.8 (or even older!) via its shell script.

Agreed if the host can run a newer Java. But on AIX 7.1, HP-UX or Solaris 10 nothing new enough for current Jenkins exists, so agent.jar itself has to run on 8.

---

<div class="post-metadata">

**Author:** ![samrocketman](https://dub1.discourse-cdn.com/flex013/user_avatar/community.jenkins.io/samrocketman/32/4631_2.png) [@samrocketman](https://community.jenkins.io/u/samrocketman)\
**Post date:** [October 17, 2026, 12:29pm UTC](https://community.jenkins.io/t/keeping-java-8-build-hosts-aix-solaris-hp-ux-rhel-6-as-agents-of-a-current-jenkins/37378/10 "2026-10-17T12:29:15Z")

</div>

Building via ssh is a good idea for that.
