R: rJava package install failing
RRjavaR Problem Overview
When installing rJava using the install.packages("rJava")
command I get the following error:
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include/linux'
java libs : '-L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64 -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’
I have the Java JDK installed and java -version
returns the following:
$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
When Googling around for the error I see that others are having the same issue but not finding a solution other than "install the whole JDK, not just the JRE" which I have done.
The other thing I read was to run sudo R CMD javareconf
which runs quite happily with no errors.
Any ideas what my problem is?
[[EDIT]] It's been a few months since I had this problem. I had initially solved this by editing my Java paths, as illustrated in the answer I posted below. I recently ran into the same issue on a new Ubuntu install. I tried Dirk's recommendation to use apt-get to install the rJava package. It worked perfectly. What I failed to appreciate initially is that installing packages using the Ubuntu apt-get method is fundamentally different than just loading the same package using install.packages() inside of R. The Ubuntu packages solve some issues which I didn't realize or appreciate.
R Solutions
Solution 1 - R
Wouldn't
apt-get install r-cran-rjava
have been easier? You could have asked me at useR! :)
Solution 2 - R
Turns out my problem was an issue with my JAVA_HOME
environment variable. Yes, shocking I know. My initial setting for PATH
and JAVA_HOME
looked like this:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin
And I added /jre
so it now looks like this:
export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
export PATH=$PATH:$JAVA_HOME/bin
Everything in Java seemed to work fine without the /jre
but rJava would not. Odd.
Solution 3 - R
That is how I make it work :
In Linux (Ubuntu 16.04 and 20.04 worked confirmed)
sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf
in R:
install.packages("rJava")
Solution 4 - R
Thanks - your suggestion about $JAVA_HOME
lead me to a similar solution:
unset JAVA_HOME
before invoking R.
Solution 5 - R
I came across the same issue, and it worked after running commands below.
export JAVA_LIBS="$JAVA_LIBS -ldl"
R CMD javareconf
See details at http://www-01.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.install.doc/doc/install_install_r.html
Solution 6 - R
This worked for me on Ubuntu 12.04 and R version 3.0
cd /usr/lib/jvm/java-6-sun-1.6.0.26/include
this is the directory that has jni.h
Next create a soft link to another required header file (I'm too lazy to find out how to include more than one directory in the JAVA_CPPFLAGS option below):
sudo ln -s linux/jni_md.h .
Finally
sudo R CMD javareconf JAVA_CPPFLAGS=-I/usr/lib/jvm/java-6-sun-1.6.0.26/include
Solution 7 - R
below is one of my answers on another post - https://stackoverflow.com/questions/12872699/error-unable-to-load-installed-packages-just-now/25932828#25932828
(this is also relevant to this question)
For Linux(Ubuntu) users: If you have oracle-java (7/8) installed. It'll be at this location /usr/lib/jvm
and sudo
access is required.
Create the file /etc/ld.so.conf.d/java.conf
with the following entries:
/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
(Replace java-8-oracle with java-7-oracle depending on your java version)
Then:
sudo ldconfig
Restart RStudio and then install the rJava package.
Solution 8 - R
Running R under Gentoo on an AMD64. I upgraded to R 2.12.0
R version 2.12.0 (2010-10-15) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) and those pesky messages went away.
Jan Vandermeer
Solution 9 - R
I tried to install openjdk-7-* but still I had problems installing rJava. Turns out after I restarted my computer, then there was no problem at all.
so
sudo apt-get install openjdk-7-*
RESTART after installing java, then try to install package "rJava" in R
Solution 10 - R
The rJava package looks for the /usr/lib/jvm/default-java/
folder. But it's not available as default. This folder have a symlink for the default java configured for the system.
To activate the default java install the following packages:
sudo apt-get install default-jre default-jre-headless
Tested on ubuntu 17.04 with CRAN R 3.4.1
Solution 11 - R
What worked for me was changing JAVA_HOME from file /usr/lib/R/etc/javaconf
I first checked what was my version of Java enabled : sudo update-alternatives --config java
.
In my case, it was java-8-oracle
I opened the file /usr/lib/R/etc/javaconf
and replaced default-java
by java-8-oracle
:
${JAVA_HOME=/usr/lib/jvm/default-java}
replaced by :
${JAVA_HOME=/usr/lib/jvm/java-8-oracle}
And then sudo R CMD javareconf
I restarted RStudio, and could then install rJava.
Solution 12 - R
what I do is here:
-
in /etc/apt/sources.list, add:
deb http://ftp.de.debian.org/debian sid main
Note:the rjava should be latest version
2 run: sudo apt-get update sudo apt-get install r-cran-rjava
Once update the old version of rjava, then can install rhdfs_1.0.8.
Solution 13 - R
I got it working by downloading : https://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz and running command R CMD install rJava_0.9-8.tar.gz
Solution 14 - R
I was facing the same problem while using Windows 10. I have solved the problem using the following procedure
- Download Java from https://java.com/en/download/windows-64bit.jsp for 64-bit windows\Install it
- Download Java development kit from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html for 64-bit windows\Install it
- Then right click on “This PC” icon in desktop\Properties\Advanced system settings\Advanced\Environment Variables\Under System variables select Path\Click Edit\Click on New\Copy and paste paths “C:\Program Files\Java\jdk1.8.0_201\bin” and “C:\Program Files\Java\jre1.8.0_201\bin” (without quote) \OK\OK\OK
Note: jdk1.8.0_201 and jre1.8.0_201 will be changed depending on the version of Java development kit and Java
- In Environment Variables window go to User variables for User\Click on New\Put Variable name as “JAVA_HOME” and Variable value as “C:\Program Files\Java\jdk1.8.0_201\bin”\Press OK
To check the installation, open CMD\Type javac\Press Enter and Type java\press enter It will show
In RStudio run
Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")
Note: jdk1.8.0_201 will be changed depending on the version of Java development kit
Now you can install and load rJava package without any problem.
Solution 15 - R
The problem was rJava wont install in RStudio
(Version 1.0.136
). The following worked for me (macOS Sierra version 10.12.6
) (found here):
Step-1: Download and install javaforosx.dmg
from here
Step-2: Next, run the command from inside RStudio:
install.packages("rJava", type = 'source')
Solution 16 - R
On Arch Linux, I needed to install openjdk-src
to get a JNI path working.
In other words, these are the packages I needed to install before sudo R CMD javareconf
ran successfully:
local/jdk-openjdk 14.0.2.u12-1
OpenJDK Java 14 development kit
local/jre-openjdk 14.0.2.u12-1
OpenJDK Java 14 full runtime environment
local/jre-openjdk-headless 14.0.2.u12-1
OpenJDK Java 14 headless runtime environment
local/openjdk-src 14.0.2.u12-1
OpenJDK Java 14 sources
Solution 17 - R
Assuming you have sudo privileges and not in Ubuntu where package manager makes this easier -- I tried variations of prior answers and found this gem on Databricks blog for nonUbuntu (https://kb.databricks.com/r/install-rjava-rjdbc-libraries.html)
- Installed JDK
sudo apt-get install openjdk-8-jdk
- Verify path to libjvm.so;
for me-->
cd /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
grep -r libjvm
output:
Binary file server/libjvm.so matches <<<<<<<<
- Do java configure
sudo R CMD javareconf
-
Remove prior versions of the package and install 'rJava' from CRAN mirror in RStudio
-
Restart RStudio
-
In RStudio verify link to libjvm.so
dyn.load('/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so')
library('rJava')
Solution 18 - R
I've encountered similar problem on Ubuntu 16.04 and was able to solve it by creating a folder named "default-java" in /usr/lib/jvm
and copying into it all the contents of the /usr/lib/jvm/java-8-oracle
. I opted for this solution as correcting JAVA_HOME environment variable turned out to be of no use.