The R Journal: article published in 2018, volume 10:2

jsr223: A Java Platform Integration for R with Programming Languages Groovy, JavaScript, JRuby, Jython, and Kotlin PDF download
Floid R. Gilbert and David B. Dahl , The R Journal (2018) 10:2, pages 440-454.

Abstract The R package jsr223 is a high-level integration for five programming languages in the Java platform: Groovy, JavaScript, JRuby, Jython, and Kotlin. Each of these languages can use Java objects in their own syntax. Hence, jsr223 is also an integration for R and the Java platform. It enables developers to leverage Java solutions from within R by embedding code snippets or evaluating script files. This approach is generally easier than rJava’s low-level approach that employs the Java Native Interface. jsr223’s multi-language support is dependent on the Java Scripting API: an implementation of “JSR-223: Scripting for the Java Platform” that defines a framework to embed scripts in Java applications. The jsr223 package also features extensive data exchange capabilities and a callback interface that allows embedded scripts to access the current R session. In all, jsr223 makes solutions developed in Java or any of the jsr223-supported languages easier to use in R.

Received: 2018-05-29; online 2018-12-08, supplementary material, (3 KiB)
CRAN packages: rJava, cranlogs, jsr223, rscala, jdx, V8, R6, Rserve, opencpu, rGroovy, jsonlite, reticulate, rJython, PythonInR, rjson
CRAN Task Views implied by cited CRAN packages: WebTechnologies, ModelDeployment, NumericalMathematics, HighPerformanceComputing


CC BY 4.0
This article and supplementary materials are licensed under a Creative Commons Attribution 4.0 International license.

@article{RJ-2018-066,
  author = {Floid R. Gilbert and David B. Dahl},
  title = {{jsr223: A Java Platform Integration for R with Programming
          Languages Groovy, JavaScript, JRuby, Jython, and Kotlin}},
  year = {2018},
  journal = {{The R Journal}},
  doi = {10.32614/RJ-2018-066},
  url = {https://doi.org/10.32614/RJ-2018-066},
  pages = {440--454},
  volume = {10},
  number = {2}
}