[R] R and Java 10 ➜ rJava not able to build

Jeff Newmiller jdnewmil at dcn.davis.ca.us
Wed Mar 28 03:39:10 CEST 2018


I am not a Mac user, but I do use Linux and I would recommend not running R with sudo unless you are an admin ninja. That defensive practice would render the answer to your question moot.

It is possible that your problem may have started with inappropriate use of sudo in configuring java, but configuring Java is not on-topic here.
-- 
Sent from my phone. Please excuse my brevity.

On March 27, 2018 12:25:33 PM PDT, Luis Puerto <luiss.puerto at gmail.com> wrote:
>Hi! 
>
>I’m on macOS 10.13.3 and just installed the new Java 10 using Homebrew
>Cask. I also have installed R with Homebrew. Everything seems to work
>fine, however I just get different outputs if I run sudo R CMD
>javareconf or R CMD javareconf. With sudo I get pointed to Java 9 and
>without sudo I get pointed to Java 10. I really don’t know why. 
>
>Without sudo:
>
>$ R CMD javareconf                                                     
>                  
>Java interpreter :
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java
>Java version     : 10
>Java home path   :
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
>Java compiler    :
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/javac
>Java headers gen.: /usr/bin/javah
>Java archive tool:
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/jar
>Non-system Java on macOS
>
>trying to compile and link a JNI program
>detected JNI cpp flags    : -I$(JAVA_HOME)/include
>-I$(JAVA_HOME)/include/darwin
>detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
>/usr/local/opt/llvm/bin/clang 
>-I/usr/local/Cellar/r/3.4.4/lib/R/include -DNDEBUG
>-I/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/include
>-I/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/include/darwin
>-I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -fPIC 
>-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -c conftest.c -o
>conftest.o
>/usr/local/opt/llvm/bin/clang++ -dynamiclib
>-Wl,-headerpad_max_install_names -undefined dynamic_lookup
>-single_module -multiply_defined suppress -L/usr/local/opt/gettext/lib
>-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib
>-L/usr/local/Cellar/r/3.4.4/lib/R/lib -L/usr/local/opt/gettext/lib
>-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -o
>conftest.so conftest.o
>-L/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/lib/server
>-ljvm -L/usr/local/Cellar/r/3.4.4/lib/R/lib -lR -lintl -Wl,-framework
>-Wl,CoreFoundation
>
>
>JAVA_HOME        :
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
>Java library path: $(JAVA_HOME)/lib/server
>JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
>JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
>Updating Java configuration in /usr/local/Cellar/r/3.4.4/lib/R
>override rw-r--r--  root/admin for
>/usr/local/Cellar/r/3.4.4/lib/R/etc/Makeconf? (y/n [n]) y
>override rw-r--r--  root/admin for
>/usr/local/Cellar/r/3.4.4/lib/R/etc/ldpaths? (y/n [n]) y
>Done.
>With sudo:
>
>$ sudo R CMD javareconf                                                
>                  
>Java interpreter :
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/java
>Java version     : 9.0.4
>Java home path   :
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
>Java compiler    :
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/javac
>Java headers gen.:
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/javah
>Java archive tool:
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/jar
>Non-system Java on macOS
>
>trying to compile and link a JNI program
>detected JNI cpp flags    : -I$(JAVA_HOME)/include
>-I$(JAVA_HOME)/include/darwin
>detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
>/usr/local/opt/llvm/bin/clang 
>-I/usr/local/Cellar/r/3.4.4/lib/R/include -DNDEBUG
>-I/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/include
>-I/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/include/darwin
>-I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -fPIC 
>-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -c conftest.c -o
>conftest.o
>/usr/local/opt/llvm/bin/clang++ -dynamiclib
>-Wl,-headerpad_max_install_names -undefined dynamic_lookup
>-single_module -multiply_defined suppress -L/usr/local/opt/gettext/lib
>-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib
>-L/usr/local/Cellar/r/3.4.4/lib/R/lib -L/usr/local/opt/gettext/lib
>-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -o
>conftest.so conftest.o
>-L/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/lib/server
>-ljvm -L/usr/local/Cellar/r/3.4.4/lib/R/lib -lR -lintl -Wl,-framework
>-Wl,CoreFoundation
>
>
>JAVA_HOME        :
>/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
>Java library path: $(JAVA_HOME)/lib/server
>JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
>JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
>Updating Java configuration in /usr/local/Cellar/r/3.4.4/lib/R
>Done.
>The result of be pointed to Java 10 is rJava package not be able to
>build. 
>
>warning: [options] bootstrap class path not set in conjunction with
>-source 6
>warning: [options] source value 6 is obsolete and will be removed in a
>future release
>warning: [options] target value 1.6 is obsolete and will be removed in
>a future release
>warning: [options] To suppress warnings about obsolete options, use
>-Xlint:-options.
>Note: Some input files use or override a deprecated API.
>Note: Recompile with -Xlint:deprecation for details.
>Note: Some input files use unchecked or unsafe operations.
>Note: Recompile with -Xlint:unchecked for details.
>4 warnings
>/usr/bin/javah -d . -classpath . org.rosuda.JRI.Rengine
>Unable to locate an executable at
>"/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/javah"
>(-1)
>make[2]: *** [org_rosuda_JRI_Rengine.h] Error 2
>make[1]: *** [src/JRI.jar] Error 2
>make: *** [jri] Error 2
>ERROR: compilation failed for package ‘rJava’
>* removing ‘/Users/lpuerto/Library/R/3.x/library/rJava’
>* restoring previous ‘/Users/lpuerto/Library/R/3.x/library/rJava’
>
>The downloaded source packages are in
>‘/private/var/folders/wf/41gjf2mx7m7fmvfd8dr22_5h0000gn/T/RtmpT2kJMY/downloaded_packages’
>Warning message:
>In install.packages("rJava", repos = "cloud.r-project.org") :
>  installation of package ‘rJava’ had non-zero exit status
>I've checked and there isn't a javah on
>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/javah as
>in Java 9. Which make me think that either R CMD javareconf isn’t
>working properly with Java 10 or rJava is not yet compatible with Java
>10. 
>
>Does anyone know what is going on? 
>
>Thanks! 
>
>PS/ I’ve opened an issue <https://github.com/s-u/rJava/issues/137> in
>rJava’s github and a question in stackoverflow
><https://stackoverflow.com/questions/49519007/sudo-r-cmd-javareconf-and-r-cmd-javareconf-produce-different-output-with-java-10>.
>
>
>
>Best Regards
>Luis Puerto
>http://luisspuerto.net
>
>
>	[[alternative HTML version deleted]]
>
>______________________________________________
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list