Build the best - destroy the rest!

Wednesday 15 June 2022

Robocode 1.9.4.6

Version 1.9.4.6 (15-Jun-2022) The Java 18 support release

Newer versions of Java is making things harder for the codebase of Robocode.

With Java 18 (JEP 411), the Security Manager is disabled by default, but can be allowed by the user from the command line. Hence, with this version of Robocode, the -Djava.security.manager=allow system property has been added to the script for making it possible to run Robocode on Java 18. Note that this is just a work-around, as the Security Manager will be permanently removed from Java at some point in the future when newer major versions of Java are released.

This is a big concern for Robocode, which uses the Security Manager to control access to various resources between robots running on the same JVM. And currently, no good substitute exists for replacing the Security Manager (or find a good way to remove it) from Robocode without breaking things.

Bugfix

  • Java 18 fix: Robocode could not run on the newest Java 18 due to the terminally deprecated Security Manager.
    • The Security Manager is now explicitly being allowed to run with the .bat, .sh, and .command files by adding setting this system property: -Djava.security.manager=allow.
  • Give bots without rank highest priority in the LiteRumble (RoboRumble). Thank you Xor for this fix! :)
Download Robocode 1.9.4.6 from here