← Back to all sparks
R

rJavaEnv

INFRA · APIS
Velocity0.0

'Java' Environments for R Projects

The R package that installs Java for you stopped needing an update every time Java ships.

javaenvironment-managementreproducibilitydeveloper-toolingr-package
Current state
rJavaEnv downloads, caches and activates Java distributions for R projects, so packages depending on rJava can get a known runtime without system-level installation. It manages a cache, can set Java for a session only, and reports which versions are available for the detected OS and architecture. As of 0.3.0 the list of installable versions is fetched from the vendor's own release metadata rather than being hardcoded.
Where it's heading
The package has been working its way out of two dependencies: on the host system and on itself. Session-scoped activation through use_java() removed the need to touch a project directory, which is what makes the package usable inside targets and callr pipelines. Dynamic version discovery then removed the maintainer from the critical path for new Java releases. What remains conspicuously thin is verification — the 0.3.0 notes put test coverage at 7.2%, an unusually candid number for a package whose job is manipulating runtime environments.
Prediction
Support for Java distributions beyond Amazon Corretto is the natural next step, since the version discovery mechanism is now generic but the vendor is still singular.

Recent moves

  1. 1y ago

    Java versions discovered from vendor metadata, not a hardcoded list

    ⚡ SPARK

    Java versions are now discovered from the vendor's official releases metadata instead of a hardcoded list, so new Java releases become installable without waiting for this package to update. java_valid_versions() exposes what is actually available for the detected platform, and a force argument makes re-downloads possible without clearing the cache.

    View source ↗
  2. 1y ago

    Fix for rJava pre-initialisation blocking version switches

    A hot fix for a bug where setting the environment via rJava::.jniInitialized() pre-initialised rJava, which made switching Java versions impossible for the packages that needed it most. Nine days after the release that introduced use_java(), and a reminder that JVM initialisation is a one-shot operation the package has to work around.

    View source ↗
  3. 1y ago

    Session-scoped Java activation for targets and callr

    Adds use_java() to download, install and activate Java for the current session without touching the project directory, aimed explicitly at targets and callr workflows. The version check functions become more useful in the process, returning the detected version rather than a bare TRUE or FALSE.

    View source ↗
  4. 1y ago

    Broken README links fixed

    Fixes broken links in the README. Documentation upkeep in the package's first months.

    View source ↗
  5. 2y ago

    Initial version

    The initial version, recorded only as passing R CMD check. The note says nothing about the package's starting capabilities, which have to be inferred from the releases that follow.

    View source ↗