Skip to content

Releases: derfsss/java-os4

Java-OS4 0.5.4

Choose a tag to compare

@derfsss derfsss released this 23 Jun 19:04

A Java 8 runtime for AmigaOS 4 (PowerPC) — JamVM 2.0 + the OpenJDK 8 class library, with a native AWT/Swing toolkit.

Fixed

  • sun.boot.class.path separator on AmigaOS. The property was the VM's raw :-joined boot path, but path.separator is ; on AmigaOS (: is the volume separator). OpenJDK's sun.misc.Launcher split it on path.separator and read the whole value as one bogus entry beginning niopatch.zip:, so AmigaDOS popped a "Please insert volume niopatch.zip" requester and every getBootstrapResource() failed. That made sun.reflect.misc.MethodUtil define Trampoline via the bootstrap loader and throw "Trampoline must not be defined by the bootstrap class loader" — first hit running Swing applications and the test suite (reported on amigans.net). sun.boot.class.path is now emitted as a ;-separated list of absolute paths anchored at java.home, so it splits correctly and every boot resource resolves. HelloJava was never affected.

Added

  • tests/regression/BootClassPathTest.java — a regression test that fails on the pre-0.5.4 VM and passes on 0.5.4 (and on a reference JVM).

Upgrading is recommended for anyone on 0.5.1–0.5.3. Headless apps, java -version, and the conformance suite are otherwise unchanged.

Install

Unpack the .lha, double-click the Java-OS4 drawer to run the installer (AmigaOS 4.1 Installation Utility). Requires clib4.library 2.1+ in LIBS: (bundled, installed if missing). See the README and CHANGELOG.

Java-OS4 0.5.3

Choose a tag to compare

@derfsss derfsss released this 23 Jun 01:08

Java-OS4 0.5.3

A bug-fix release: non-Latin AmigaOS locales no longer crash the VM at startup.

Fixed

  • Charset NoClassDefFoundError on non-Latin locales (reported on amigans.net against 0.5.2). On a Cyrillic — or any other vendor-charset — AmigaOS locale, nl_langinfo(CODESET) reports the diskfont MIME name verbatim (e.g. Amiga-1251), which OpenJDK fed into file.encoding / sun.jnu.encoding unvalidated. That forced the extended charset provider during early VM bootstrap and died with:

    java.lang.NoClassDefFoundError "unsupported charset extension: Amiga-1251"

    The runtime now normalises the AmigaOS vendor charset name to a standard JDK charset before bootstrap (e.g. Amiga-1251 → windows-1251, which is byte-exact with Amiga-1251 across the entire Russian alphabet); any unrecognised Amiga-* name falls back to ISO-8859-1 so the VM always boots. Western / UTF-8 locales were never affected and are unchanged.

Validated

QEMU (AmigaOne, JamVM / OpenJDK 8 on PowerPC / clib4): 10-language charset test 33/33 on the VM, charset-mapping unit test 18/18 on real ppc, and a clean java -version boot (no regression).

Install

Unpack JavaOS4-0.5.3.lha and run the installer (assigns JAVA:, copies the java launcher to C:). Requires clib4.library 2.1+ in LIBS: (the installer adds it if missing).

This release changes only libjava.so versus 0.5.2 — an existing 0.5.2 install can be updated by replacing libjava.so alone.

🤖 Generated with Claude Code

Java-OS4 0.5.2

Choose a tag to compare

@derfsss derfsss released this 22 Jun 16:53

Java-OS4 0.5.2

A Java 8 runtime for AmigaOS 4 (PPC): JamVM 2.0 + the OpenJDK 8 class library, with a Swing/AWT toolkit so Java GUIs run in Workbench windows.

Fixed — java -cp now works from any directory (amigans.net topic 10124)

  • Relative classpaths resolve against your current directory: java -cp app.jar Main run from anywhere now works (no more NoClassDefFoundError).
  • Absolute Volume: classpaths work: java -cp Work:dir/app.jar Main is no longer split on the :.
  • No cwd leak — the java launcher no longer changes your Shell's current directory.

Security

  • Bundled zlib updated 1.2.8 → 1.2.13 (in libzip.so) — picks up nine years of inflate/security fixes, including CVE-2022-37434.

Notes

  • Runtime: OpenJDK 1.8.0_492 class library. Requires clib4.library 2.1+ in LIBS: (the installer bundles it).
  • Swing/AWT apps need no extra flags. javac is not included — compile on a host JDK 8 (javac --release 8) and copy the jar over.

Install: download JavaOS4-0.5.2.lha, unpack it, and double-click the installer.

🤖 Generated with Claude Code

Java-OS4 0.5.1

Choose a tag to compare

@derfsss derfsss released this 20 Jun 18:49

Java-OS4 0.5.1 — a Java 8 runtime for AmigaOS 4 (PowerPC): JamVM 2.0 + the
OpenJDK 8 class library, with a native AWT/Swing toolkit so Java GUIs run in
Workbench windows.

Installer asset updated 2026-06-20 — fixes a "Protect failed / object not
found" error during install (a chosen-destination trailing-slash bug that
produced SYS:Java//java). The runtime is byte-identical; only the bundled
installer changed. Verified on a real AmigaOne X5000. Re-download
JavaOS4-0.5.1.lha if you grabbed an earlier copy.

Install

Download JavaOS4-0.5.1.lha below, unpack it anywhere on your AmigaOS 4
machine, and double-click the Java-OS4 drawer to run the installer. Then from
a Shell: java -version, or java -cp examples/HelloJava.jar HelloJava. See the
README for full
install/run notes.

Requirements: AmigaOS 4 (PowerPC); clib4.library 2.1+ in LIBS: (the
installer bundles a copy if missing); Swing/AWT GUIs additionally need
graphics.library V52+.

What's new in 0.5.1

  • Fixes for the amigans.net 0.5.0 reports: Swing close-freeze, keyboard
    input in games
    , a class-version gate (Java 9+ bytecode is rejected cleanly
    with UnsupportedClassVersionError), clib4.library bundled + installed to
    LIBS:
    , and runnable example jars.
  • A package-organized Java 8 + Java 17 regression test suite (~800 assertions);
    14/16 Java-8 categories pass on the VM (see tests/CONFORMANCE.md).
  • clib4 is now an in-repo git submodule (AmigaLabs/clib4 development),
    including the AltiVec vec_strcpy page-overread fix.

Build from source: see docs/BUILDING.md.

Java-OS4 0.5.0 (beta)

Java-OS4 0.5.0 (beta) Pre-release
Pre-release

Choose a tag to compare

@derfsss derfsss released this 11 Jun 17:15

First beta release of Java-OS4 — a Java 8 runtime for AmigaOS 4 (PowerPC): JamVM 2.0 + the OpenJDK 8 class library on clib4, with a native AWT/Swing toolkit so Java GUIs run in Workbench windows.

What works

  • Headless Java 8 programs — collections, streams/lambdas, NIO, reflection, serialization, zip, text.
  • Swing/AWT GUIs in Intuition windows: real mouse and keyboard input, window resize, modal dialogs, fonts via FreeType.
  • Zero-flag GUI launch: java -cp app.jar Main starts a Swing app with no special options.

Install

  1. Download JavaOS4-0.5.0.lha below and unpack it on your AmigaOS 4 machine.
  2. Double-click the Java-OS4 drawer icon to run the installer (uses Sys:Utilities/Installation Utility). It asks where to install, copies the runtime there, and adds a permanent JAVA: assign to S:User-Startup.
  3. From a Shell:
    java -version
    java -cp myapp.jar Main
    

javac is not included — compile on a host JDK 8 and copy the .jar over.

Requirements

AmigaOS 4.x on PowerPC (developed and tested on AmigaOS 4.1 Final Edition).

Notes

This is a beta — it runs real applications but is under active development; expect rough edges and gaps. Bug reports and feedback are welcome.

Built on the OpenJDK 8 class library (Eclipse Temurin 1.8.0_492). See the README for the full overview, acknowledgements, and license (GPL-2.0).

SHA-256 (JavaOS4-0.5.0.lha): fbe68eac34c34cfb92b3972b7e6f35ae0efdc6cb2b14cb3c0fdecd5e516bfa64