17

I want to install rJava but it doesnt work. When I am typing R CMD javareconf in the console I get the following error:

trying to compile and link a JNI progam detected JNI cpp flags : detected JNI linker flags : gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c conftest.c -o conftest.o conftest.c:1:17: error: jni.h: No such file or directory conftest.c: In function 'main': conftest.c:4: warning: implicit declaration of function 'JNI_CreateJavaVM' make: *** [conftest.o] Error 1 Unable to compile a JNI program Java library path: JNI cpp flags : JNI linker flags : Updating Java configuration in /usr/lib64/R Done. 

Any ideas how to fix it?

1
  • conftest.c:1:17: error: jni.h: No such file or directory ... please see this Commented Jul 10, 2013 at 12:25

3 Answers 3

9

I know this is closed but I'm adding my solution for completeness. In effect I had the same problem and all was correctly installed. I had also run the

sudo R CMD javareconf 

for system wide setting. What I needed was for it to work for my user. And in this case you should run

R CMD javareconf -e 

without sudo and with appended -e.

Worked for me. :)

Sign up to request clarification or add additional context in comments.

Comments

6

The jni.h file is part of JDK installation. You probably don't have Java JDK installed correctly. Download Oracle Java from here, or use your package manager.

If you have Java JDK already installed, set JAVA_HOME environment variable to point to the JDK directory.

10 Comments

I am working on a server over ssh with debian 6. Actually JDK ist installed correctly. I did a sudo apt-get install openjdk-6-jdk. Unfortunetaly sudo apt-get install ioenjdk-7-jdk does not work on debian 6
Doesn't Debian have an rJava package that you could use? Try apt-get install r-cran-rjava.
Yes, It has but it is unfortunately the old version, which does not work with RHive: package 'rJava' 0.8-4 was found, but >= 0.9.0 is required for by 'RHive'
Do you have JDK directory in your PATH environment variable?
echo $PATH only returns: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. So I guess no :)
|
0

I was also facing same error which was on RHEL8.1 & i resolved it as follows:

 yum --enablerepo=* install java-1.8* 

later i ran same command which was giving me error logs of R server.

 R CMD javareconf 

which turns into the following output & succeed.

enter image description here

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.