[R-SIG-Mac] Issues with rJava on OS X El Capitan

Brandon Hurr bhive01 at gmail.com
Mon Feb 15 15:48:55 CET 2016


Berend,

I realize this is slightly off the goal of getting java working on your
system, but it looks like you're using rJava to extract data from Excel
files. Have you considered or tested using the readXL package instead? I
believe it does not require rJava to work.

https://github.com/hadley/readxl

Brandon

On Mon, Feb 15, 2016 at 2:51 AM, Berend Hasselman <bhh at xs4all.nl> wrote:

>
> > On 14 Feb 2016, at 23:13, Simon Urbanek <simon.urbanek at r-project.org>
> wrote:
> >
> > Check DYLD_FALLBACK_LIBRARY_PATH - it must include your Java:
> >
> >> Sys.getenv("DYLD_FALLBACK_LIBRARY_PATH")
> > [1]
> "/Library/Frameworks/R.framework/Resources/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/jre/lib/server"
> >
> > if it doesn't, your R is not correctly configured. Oracle's Java
> requires the above setting, it doesn't work without it (unlike the system
> Java). The above is set by the R script based on etc/ldpaths - so make sure
> that one is correct (it should be by javareconf if your system is setup
> correctly).
> >
>
> Thanks; this lead to resolving the problem.
> I should have mentioned I was using library(rJava) and the others in the
> GUI R.app.
>
> In Terminal R shows
>
> > Sys.getenv("DYLD_FALLBACK_LIBRARY_PATH")
> [1]
> "/Library/Frameworks/R.framework/Resources/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre/lib/server"
>
> as required.
>
>
> I've had to compile rJava from source as suggested by Brian Ripley (if I
> use the binary on CRAN I get  errors)(on OS X 10.11.3).
> I've installed the binaries of XLConnect, etc.
>
> I can now run things like XLConnect from R in the Terminal and from bash
> scripts.
> I can't run anything using rJava in the GUI R.app or in Rstudio.
>
>
> BTW. R.app ([R.app GUI 1.67 (7129) x86_64-apple-darwin13.4.0]) shows
>
> > Sys.getenv("DYLD_FALLBACK_LIBRARY_PATH")
> [1] ""
>
> and Rstudio (Version 0.99.878) shows this
>
> > Sys.getenv("DYLD_FALLBACK_LIBRARY_PATH")
> [1]
> "/Library/Frameworks/R.framework/Resources/lib:/Users/berendhasselman/lib:/usr/local/lib:/usr/lib::"
>
> Where it got "/Users/berendhasselman/lib" from I wouldn't know; the folder
> does not exist.
>
> thanks a lot
>
> Berend
>
>
> > Cheers,
> > Simon
> >
> >
> > On Feb 14, 2016, at 6:47 AM, Berend Hasselman <bhh at xs4all.nl> wrote:
> >
> >>
> >>> On 14 Feb 2016, at 12:31, Prof Brian Ripley <ripley at stats.ox.ac.uk>
> wrote:
> >>>
> >>> On 14/02/2016 11:24, Berend Hasselman wrote:
> >>>>
> >>>>> On 14 Feb 2016, at 11:48, Prof Brian Ripley <ripley at stats.ox.ac.uk>
> wrote:
> >>>>>
> >>>>> Your Java is seriously old.  Start by updating it (1.8.0_74 is
> current, AFAIK).
> >>>>>
> >>>>> I can reproduce this with the CRAN binary packages, but installing
> the packages from source works for me on El Capitan (using the CRAN binary
> R).  So I suspect a problem with the CRAN binary package of rJava, which
> seems to be hard-coded to use /System/Library/Frameworks/JavaVM.framework
> and not Oracle Java.
> >>>>>
> >>>>
> >>>> I've just updated to Java 1.8.0_74.
> >>>> I get the same issues.
> >>>>
> >>>>
> >>>> And I have now also installed rJava, XLConnect end XLConnectJars from
> source.
> >>>> library(XLConnect) gives this error
> >>>>
> >>>> <message>
> >>>> Loading required package: XLConnectJars
> >>>> Error : .onLoad failed in loadNamespace() for 'rJava', details:
> >>>> call: dyn.load(file, DLLpath = DLLpath, ...)
> >>>> error: unable to load shared object
> '/Users/berendhasselman/Library/R/3.2/library/rJava/libs/rJava.so':
> >>>>
> dlopen(/Users/berendhasselman/Library/R/3.2/library/rJava/libs/rJava.so,
> 6): Library not loaded: @rpath/libjvm.dylib
> >>>> Referenced from:
> /Users/berendhasselman/Library/R/3.2/library/rJava/libs/rJava.so
> >>>> Reason: image not found
> >>>> Error: package 'XLConnectJars' could not be loaded
> >>>> </message>
> >>>>
> >>>> Apparently rJava.so can't be found. But I had already installed it
> from source.
> >>>
> >>> That is not what the message says ... it is libjvm which is not being
> found.
> >>>
> >>
> >> Correct. Sorry about that.
> >>
> >>> Did you re-run R CMD javareconf?  (You might need to reinstall rJava
> from source once you do.)
> >>>
> >>
> >> Yes I did and have done so again. I've reinstalled rJava from source
> and get the same error and the same output of running otool -L  on rJava.so.
> >>
> >> Berend
> >>
> >> Output of R CMD javareconf:
> >>
> >> Java interpreter : /usr/bin/java
> >> Java version     : 1.8.0_74
> >> Java home path   :
> /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre
> >> Java compiler    : /usr/bin/javac
> >> Java headers gen.: /usr/bin/javah
> >> Java archive tool: /usr/bin/jar
> >> Non-system Java on OS X
> >>
> >> 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
> >> clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG
> -I/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre/../include
> -I/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre/../include/darwin
> -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include
> -fPIC  -Wall -mtune=core2 -g -O2  -c conftest.c -o conftest.o
> >> clang -dynamiclib -Wl,-headerpad_max_install_names -undefined
> dynamic_lookup -single_module -multiply_defined suppress
> -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o
> conftest.so conftest.o
> -L/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre/lib/server
> -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework
> -Wl,CoreFoundation
> >>
> >>
> >> JAVA_HOME        :
> /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre
> >> 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 /Library/Frameworks/R.framework/Resources
> >> Done.
> >>
> >>
> >>
> >>>
> >>>> I have run otool on the installed rJava.so
> >>>>
> >>>> otool -L rJava.so
> >>>> rJava.so:
> >>>>    rJava.so (compatibility version 0.0.0, current version 0.0.0)
> >>>>    @rpath/libjvm.dylib (compatibility version 1.0.0, current version
> 1.0.0)
> >>>>
> /Library/Frameworks/R.framework/Versions/3.2/Resources/lib/libR.dylib
> (compatibility version 3.2.0, current version 3.2.3)
> >>>>
> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
> (compatibility version 150.0.0, current version 1256.14.0)
> >>>>    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1226.10.1)
> >>>>
> >>>> Berend
> >>>>
> >>>>> On 14/02/2016 09:22, Berend Hasselman wrote:
> >>>>>> I have installed rJava, xlsx, xlsxjars, XLConnect and XLConnectJars.
> >>>>>>
> >>>>>> Executing library(xlsx) gives this output
> >>>>>>
> >>>>>> Loading required package: rJava
> >>>>>> Loading required package: xlsxjars
> >>>>>> Error : .onLoad failed in loadNamespace() for 'xlsx', details:
> >>>>>> call: .jinit()
> >>>>>> error: JNI_GetCreatedJavaVMs returned -1
> >>>>>>
> >>>>>> Error: package or namespace load failed for 'xlsx'
> >>>>>> JavaVM: requested Java version ((null)) not available. Using Java
> at "" instead.
> >>>>>> JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib
> >>>>>> JavaVM FATAL: Failed to load the jvm library.
> >>>>>>
> >>>>>>
> >>>>>> Executing library(XLConnect) gives this output
> >>>>>>
> >>>>>> Loading required package: XLConnectJars
> >>>>>> Error : .onLoad failed in loadNamespace() for 'XLConnectJars',
> details:
> >>>>>> call: .jinit()
> >>>>>> error: JNI_GetCreatedJavaVMs returned -1
> >>>>>>
> >>>>>> Error: package 'XLConnectJars' could not be loaded
> >>>>>> JavaVM: requested Java version ((null)) not available. Using Java
> at "" instead.
> >>>>>> JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib
> >>>>>> JavaVM FATAL: Failed to load the jvm library.
> >>>>>>
> >>>>>>
> >>>>>> sessionInfo (after library(xlsx) and library(XLConnect)) and
> javareconf output below.
> >>>>>>
> >>>>>> What is going on?
> >>>>>> What is the solution for this problem?
> >>>>>>
> >>>>>> Berend Hasselman
> >>>>>>
> >>>>>>
> >>>>>> SessionInfo:
> >>>>>>
> >>>>>> R version 3.2.3 Patched (2016-02-13 r70160)
> >>>>>> Platform: x86_64-apple-darwin13.4.0 (64-bit)
> >>>>>> Running under: OS X 10.11.3 (El Capitan)
> >>>>>>
> >>>>>> locale:
> >>>>>> [1] en_IE.UTF-8/en_IE.UTF-8/en_IE.UTF-8/C/en_IE.UTF-8/en_IE.UTF-8
> >>>>>>
> >>>>>> attached base packages:
> >>>>>> [1] stats     graphics  grDevices utils     datasets  methods   base
> >>>>>>
> >>>>>> other attached packages:
> >>>>>> [1] xlsxjars_0.6.1 rJava_0.9-8
> >>>>>>
> >>>>>> loaded via a namespace (and not attached):
> >>>>>> [1] tools_3.2.3
> >>>>>>
> >>>>>>
> >>>>>> Output of R CMD javareconf
> >>>>>>
> >>>>>> [.../~]: R CMD javareconf -n
> >>>>>> Java interpreter : /usr/bin/java
> >>>>>> Java version     : 1.8.0_25
> >>>>>> Java home path   :
> /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
> >>>>>> Java compiler    : /usr/bin/javac
> >>>>>> Java headers gen.: /usr/bin/javah
> >>>>>> Java archive tool: /usr/bin/jar
> >>>>>> Non-system Java on OS X
> >>>>>>
> >>>>>> 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
> >>>>>> clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG
> -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include
> -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include/darwin
> -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include
> -fPIC  -Wall -mtune=core2 -g -O2  -c conftest.c -o conftest.o
> >>>>>> clang -dynamiclib -Wl,-headerpad_max_install_names -undefined
> dynamic_lookup -single_module -multiply_defined suppress
> -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o
> conftest.so conftest.o
> -L/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/server
> -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework
> -Wl,CoreFoundation
> >>>>>>
> >>>>>> JAVA_HOME        :
> /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
> >>>>>> 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
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> R-SIG-Mac mailing list
> >>>>>> R-SIG-Mac at r-project.org
> >>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> >>>>> Emeritus Professor of Applied Statistics, University of Oxford
> >>>>
> >>>
> >>>
> >>> --
> >>> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> >>> Emeritus Professor of Applied Statistics, University of Oxford
> >>
> >> _______________________________________________
> >> R-SIG-Mac mailing list
> >> R-SIG-Mac at r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> >>
> >
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>

	[[alternative HTML version deleted]]



More information about the R-SIG-Mac mailing list