R/Utilities.R

Defines functions supportsJava8

Documented in supportsJava8

#' Determine if Java virtual machine supports Java
#'
#' Tests Java virtal machine (JVM) java.version system property to check if version >= 8.
#'
#' @return
#' Returns TRUE if JVM supports Java >= 8.
#'
#' @examples
#' supportsJava8()
#'
#' @export
supportsJava8 <- function() {
  javaVersionText <-
    rJava::.jcall("java/lang/System", "S", "getProperty", "java.version")
  majorVersion <- as.integer(regmatches(
    javaVersionText,
    regexpr(pattern = "^\\d+", text = javaVersionText)
  ))
  if (majorVersion == 1) {
    twoDigitVersion <- regmatches(javaVersionText,
                                  regexpr(pattern = "^\\d+\\.\\d+", text = javaVersionText))
    majorVersion <- as.integer(regmatches(twoDigitVersion,
                                          regexpr("\\d+$", text = twoDigitVersion)))
  }
  support <- majorVersion >= 8
  message(paste0("Using JVM version ",
                 javaVersionText,
                 " (>= 8? ", support, ")"))
  return (support)
}

Try the BeastJar package in your browser

Any scripts or data that you put into this service are public.

BeastJar documentation built on Oct. 26, 2020, 5:08 p.m.