8.7 (Release 1)


  • Jamaica now supports Raspberry Pi OS as a target platform.

  • Jamaica now requires Ubuntu 20.04 LTS for distributions that used to require CentOS/RHEL version 8.

  • Jamaica is now shipped with OpenJDK’s root CA certificates based on jdk8u332.

  • Jamaica is now based on standard classes of OpenJDK version jdk8u332.

  • The fdlibm library used by Jamaica was updated to OpenJDK version jdk8u332.

  • The FreeType bundled with Jamaica was updated to version 2.12.1.

  • The libffi bundled with Jamaica was updated to version 3.4.4.

  • Jamaica is now using the same array index scale in the sun.misc.Unsafe class as OpenJDK. This enables using many libraries that rely on it without workarounds (e.g., Netty and LMAX Disruptor).


  • Jamaica is no longer shipped with the compiler jamaicac. As an alternative, javac from OpenJDK is recommended. For further information please refer to the user manual, particularly the section "Java Compiler" in the chapter "Tools Overview".

  • All -…​fromEnv options have been removed from the Builder. The same effect can be achieved with the corresponding base option.


  • Fix JAM-9074: Eliminated undefined behavior in the VM code (gc) that was detected by the clang undefined behavior sanitizer.

  • Fix JAM-9131: Jamaica no longer throws an additional SocketException from the PlainSocketImpl.socketShutdown() native method in case the native call to shutdown fails.

  • Fix JAM-9083: The Profile Analyzer command-line interface now supports using +=.

  • Fix JAM-8963: The java.home property is now correctly set for executables that were found using the PATH environment variable on QNX 7.1.

  • Fix JAM-9055, JAM-9065, JAM-8435, JAM-8899, JAM-8702: This includes various issues related to sun.misc.Unsafe about parameter checks and API support.

  • Fix JAM-8909: The Builder now automatically includes package-info classes and thus supports package annotations without manual intervention.

  • Fix JAM-9135: Blitting from the result of BufferedImage.getSubimage will now copy from and to the correct location in native memory and not expose raw memory in the process.

  • Fix JAM-8515: Timeouts for javax.realtime.Timed instances were not always delivered correctly and occasionally missed. This has been fixed now.

  • Fix JAM-8528: In some cases ATC deferred methods were falsely interrupted, e.g. javax.realtime.Interruptible instances with a deferred run() method. This issue has been fixed.