[R-SIG-Mac] Issues with rJava on OS X El Capitan
Berend Hasselman
bhh at xs4all.nl
Mon Feb 15 11:51:44 CET 2016
> 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
>>
>
More information about the R-SIG-Mac
mailing list