Skip to content

java_check_version_rjava() fails after installing (Linux) #100

@BjarkeHautop

Description

@BjarkeHautop

Hi! I'm using Linux Mint 22.3, and java_check_version_rjava() doesn't seem to work correctly in my setup. Everything else seems to work, and I can even load rJava?

Here is a reprex (I also tried removing the .cache and redownloading, but the same thing happens).

library(rJavaEnv)
java_quick_install(version = 25, distribution = "Temurin")
#> Detected platform: linux
#> Detected architecture: x64
#> You can change the platform and architecture by specifying the `platform` and
#> `arch` arguments.
#> File already cached: temurin-25-linux-x64.tar.gz
#> Java distribution temurin-25-linux-x64.tar.gz already unpacked at
#> '/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25'
#> ✔ Current R Session: JAVA_HOME and PATH set to '/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25'
#> 
#> ✔ Current R Project/Working Directory: JAVA_HOME and PATH set to ''/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25'' in .Rprofile at ''/tmp/RtmpQxUx7k/reprex-18b5963491f9b-hemp-urson''
#> 
#> ℹ On Linux, for rJava to work correctly, `libjvm.so` was dynamically loaded in
#>   the current session.
#>   To make this change permanent for installing rJava-dependent packages from
#>   source, you may need to reconfigure Java.
#>   See <https://solutions.posit.co/envs-pkgs/using-rjava/#reconfigure-r> for
#>   details.
#>   If you have admin rights, run the following in your terminal:
#>   `R CMD javareconf
#>   JAVA_HOME=/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25`
#>   If you do not have admin rights, run:
#>   `R CMD javareconf
#>   JAVA_HOME=/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25
#>   -e`
#> Java 25 (temurin-25-linux-x64.tar.gz) for linux x64 installed at
#> '/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25' and
#> symlinked to
#> '/tmp/RtmpQxUx7k/reprex-18b5963491f9b-hemp-urson/rjavaenv/linux/x64/Temurin/native/25'
java_check_version_cmd()
#> JAVA_HOME:
#> '/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25'
#> Java path:
#> '/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/bin/java'
#> Java version: "openjdk version \"25.0.2\" 2026-01-20 LTS OpenJDK Runtime
#> Environment Temurin-25.0.2+10 (build 25.0.2+10-LTS) OpenJDK 64-Bit Server VM
#> Temurin-25.0.2+10 (build 25.0.2+10-LTS, mixed mode, sharing)"
#> [1] "25"
java_check_version_rjava()
#> ✖ Failed to retrieve Java version.
#> [1] FALSE

# But it is set up correctly:
Sys.which("java")
#>                                                                            java 
#> "/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/bin/java"
Sys.getenv("JAVA_HOME")
#> [1] "/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25"
grepl("Temurin/native/25/bin", Sys.getenv("PATH"))
#> [1] TRUE

# I can even load rJava:
library(rJava)

sessionInfo()
#> R version 4.5.2 (2025-10-31)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Linux Mint 22.3
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> time zone: Europe/Copenhagen
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] rJava_1.0-14        rJavaEnv_0.3.0.9000
#> 
#> loaded via a namespace (and not attached):
#>  [1] backports_1.5.0     digest_0.6.39       fastmap_1.2.0      
#>  [4] xfun_0.56           cachem_1.1.0        glue_1.8.0         
#>  [7] RcppSimdJson_0.1.15 knitr_1.51          memoise_2.0.1      
#> [10] htmltools_0.5.9     rmarkdown_2.30      lifecycle_1.0.5    
#> [13] cli_3.6.5           reprex_2.1.1        withr_3.0.2        
#> [16] compiler_4.5.2      rstudioapi_0.18.0   tools_4.5.2        
#> [19] curl_7.0.0          checkmate_2.3.4     evaluate_1.0.5     
#> [22] Rcpp_1.1.1          yaml_2.3.12         otel_0.2.0         
#> [25] rlang_1.1.7         fs_1.6.6

Created on 2026-02-23 with reprex v2.1.1

Running the suggested command in the terminal and restarting R doesn't fix it either.

(base) bjarke@bjarke-Nitro-ANV16-41:~$ sudo JAVA_HOME=/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25 \
R CMD javareconf
[sudo] password for bjarke:
Java interpreter : /home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/bin/java
Java version     : 25.0.2
Java home path   : /home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25
Java compiler    : /home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/bin/javac
Java headers gen.: 
Java archive tool: /home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
using C compiler: ‘gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0’
gcc -std=gnu2x -I"/usr/share/R/include" -DNDEBUG -I/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/include -I/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/include/linux      -fpic  -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/r-base-ePVXIN/r-base-4.5.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/build/r-base-ePVXIN/r-base-4.5.2=/usr/src/r-base-4.5.2-1.2404.0 -Wdate-time -D_FORTIFY_SOURCE=3  -c conftest.c -o conftest.o
gcc -std=gnu2x -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -o conftest.so conftest.o -L/home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25/lib/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME        : /home/bjarke/.cache/R/rJavaEnv/installed/linux/x64/Temurin/native/25
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /usr/lib/R
Done.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions