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-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to