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

Luis Puerto luiss.puerto at gmail.com
Wed Mar 28 16:15:52 CEST 2018


Hi Ista! 

Thanks a lot for your support!! 

It puzzles me because it’s the first time that something like this happens to me. I’m aware that root and user don’t have the same environmental variables here. However, I don’t know why root chooses Java 9 and my user chooses Java 10. Isn’t Java 10 ready to be used as a root? 

It seems that we are going to have to wait until rJava releases a new version and use Java 9 till then. I don’t have any problem with this. To be honest, I found out that Java jumped a version 10 because my wife was running out of space in her MacBook Air and checking for things to delete find she has 4 different versions of Java 1.8, 9.0.1, 9.0.4 and 10. Then just it occurred to me that perhaps I could config R with Java 10 and delete all the other version. Also in my computer… Then was when I came across all of these. 

Again, thanks a lot for your support! 

Best Regards
Luis Puerto
http://luisspuerto.net <http://luisspuerto.net/>
> On 28 Mar 2018, at 17:04, Ista Zahn <istazahn at gmail.com <mailto:istazahn at gmail.com>> wrote:
> 
> On Wed, Mar 28, 2018 at 3:56 AM, Luis Puerto <luiss.puerto at gmail.com <mailto:luiss.puerto at gmail.com>> wrote:
>> Hi Jeff!!
>> 
>> I really don’t know if running R CMD javareconf with sudo has posed a problem here, now or in the past. What I know is sometimes it’s the only way to really config it, if I don’t run with sudo, in the end it asks me if I want to overwrite the configuration from root
>> 
>> 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
>> 
>> So I really don’t know if this is the problem here or not.
>> 
>> I really think the problem for R is and rJava is there is no longer a javah file.
>> 
>> Unable to locate an executable at
>> "/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/javah"
>> (-1)
>> 
>> Anyhow… I’m still puzzle by the fact that R CMD javareconf with sudo and without has different outcome.
> 
> Why does this puzzle you? There is no reason to expect the root user's
> environment to be the same as your user environment. You can look at
> 
> env > me.txt
> sudo env ? root.txt
> diff me.txt root.txt
> 
> to see the differences.
> 
>> 
>>> configuring Java is not on-topic here
>> 
>> I can't understand why. The problem isn’t java itself but the tool to configure R to use it with a new version.
>> 
>> Reading the released notes for Java 10:
>> 
>>> tools/javah
>>> <http://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html#JDK-8182758 <http://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html#JDK-8182758>> JEP 313 Remove the Native-Header Generation Tool (javah)
>>> As previously announced, the native-header tool, javah, has been removed.
>>> 
>>> Native headers can now be generated by using the Java compiler, javac, with the -h option.
>>> 
>>> See JDK-8182758 <http://bugs.java.com/view_bug.do?bug_id=JDK-8182758 <http://bugs.java.com/view_bug.do?bug_id=JDK-8182758>>
>> 
>> I don’t know if this can be fixed parsing an option in R CMD javareconf that points JAVAH to JAVAC -h
> 
> I think you're on the right track here. I tried building rJava with R
> configured to use openJDK 10 and got the same error you did. It
> appears that rJava does not currently build under openJDK 10. You did
> the right thing by opening an issue at
> https://github.com/s-u/rJava/issues/137 <https://github.com/s-u/rJava/issues/137> -- now you just wait to see
> what the rJava developers have to say about it. In the meantime, use
> JDK 9.
> 
> Best,
> Ista
> 
> 
>> 
>> 
>> 
>>> On 28 Mar 2018, at 04:39, Jeff Newmiller <jdnewmil at dcn.davis.ca.us <mailto:jdnewmil at dcn.davis.ca.us>> wrote:
>>> 
>>> 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 <mailto:luiss.puerto at gmail.com> <mailto:luiss.puerto at gmail.com <mailto: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 <http://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 <https://github.com/s-u/rJava/issues/137> <https://github.com/s-u/rJava/issues/137 <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 <https://stackoverflow.com/questions/49519007/sudo-r-cmd-javareconf-and-r-cmd-javareconf-produce-different-output-with-java-10> <https://stackoverflow.com/questions/49519007/sudo-r-cmd-javareconf-and-r-cmd-javareconf-produce-different-output-with-java-10 <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 <http://luisspuerto.net/> <http://luisspuerto.net/ <http://luisspuerto.net/>>
>>>> 
>>>> 
>>>>     [[alternative HTML version deleted]]
>>>> 
>>>> ______________________________________________
>>>> R-help at r-project.org <mailto:R-help at r-project.org> <mailto:R-help at r-project.org <mailto:R-help at r-project.org>> mailing list -- To UNSUBSCRIBE and more, see
>>>> https://stat.ethz.ch/mailman/listinfo/r-help <https://stat.ethz.ch/mailman/listinfo/r-help> <https://stat.ethz.ch/mailman/listinfo/r-help <https://stat.ethz.ch/mailman/listinfo/r-help>>
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html <http://www.r-project.org/posting-guide.html> <http://www.r-project.org/posting-guide.html <http://www.r-project.org/posting-guide.html>>
>>>> and provide commented, minimal, self-contained, reproducible code.
>> 
>> ______________________________________________
>> R-help at r-project.org <mailto:R-help at r-project.org> mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help <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.


	[[alternative HTML version deleted]]



More information about the R-help mailing list