web-dev-qa-db-fra.com

Impossible de charger le package R xlsx sous Mac OS 10.11

Je peux charger les packages rJava et xlsxjars, mais le message "Impossible de charger la machine virtuelle" s'affiche lorsque j'exécute la bibliothèque (xlsx). Ci-dessous sont mes coordonnées.

Version du système d'exploitation:

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11
BuildVersion:   15A284

Version Java:

$ Java -version
Java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

Chemin Java:

$ which Java
/usr/bin/Java

Java Home:

$ /usr/libexec/Java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home

Version R:

$ R --version
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-Apple-darwin13.4.0 (64-bit)

Comment je lance R:

$ LD_LIBRARY_PATH=$(/usr/libexec/Java_home)/jre/lib/server: open -a RStudio

Charger les paquets rJava et xlsxjars avec succès:

> library(rJava)
> library(xlsxjars)

Essayer en vain de charger le paquet xlsx:

> library(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.
Error : .onLoad failed in loadNamespace() for 'xlsx', details:
  call: .jinit()
  error: JNI_GetCreatedJavaVMs returned -1
Error: package or namespace load failed for ‘xlsx’

R Configuration:

Matts-MacBook-Pro:~ matt$ R CMD javareconf
Java interpreter : /usr/bin/Java
Java version     : 1.8.0_65
Java home path   : /Library/Java/JavaVirtualMachines/jdk1.8.0_65.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_65.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_65.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_65.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_65.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
40
Matt Hagen

Malheureusement, ces astuces sur les liens symboliques ne m'ont pas aidé. Cependant, j'ai trouvé un problème similaire sur stackoverflow ! (où else;)) Celui-ci a fonctionné pour moi en procédant comme suit:

  1. Dans le terminal, entrez ce qui suit pour relier Java correctement:

    Sudo R CMD javareconf
    
  2. Back in R (ou RStudio) installez le paquet rJava à partir du source:

    install.packages("rJava",type='source')
    

J'espère que cela t'aides!

59
SanjayIV

J'ai aussi des problèmes avec le chargement de paquets comme openNLP, xlsx, RWeka, ... et j'ai le même message d'erreur que vous. Mais finalement, cette commande a fonctionné pour moi sur OS X 10.11.3: Sudo ln -s $(/usr/libexec/Java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

13
Tobias Mini

Il peut y avoir un problème dans la version de Java pour laquelle le paquet R xlsx a été intégré. Certains anciens logiciels exigent l’installation de Java 6 pour OS X 10.11 El Capitan, OS X 10.10 Yosemite, OS X 10.9 Mavericks, OS X 10.8 Mountain Lion et OS X 10.7 Lion. Vous pouvez donc essayer d’installer cette ancienne version de Java (Java pour OS X 2015-001) sur Apple, lien ci-dessous: https://support.Apple.com/kb/DL1572?locale=pt_BR&viewlocale=en_US

Et vérifiez si vous avez un Java SE Kit de développement 8). Vous pouvez le télécharger sur le site Web Oracle, lien ci-dessous: www.Oracle.com/technetwork/Java/javase/downloads/ jdk8-downloads-2133151.html

J'avais le même problème et le téléchargement de l'ancienne version de Java l'a résolu .. J'espère que cela vous aidera!

2
Iuri

Fondamentalement, il suffit de faire ce qui est décrit ici: https://oliverdowling.com.au/2015/10/09/oracles-jre-8-on-mac-os-x-el-capitan/

version courte: d/l Java JRE d’Oracle sous forme de fichier tar http://www.Oracle.com/technetwork/Java/javase/downloads/jre8-downloads-2133155. html

puis mettez ceci dans votre terminal (pour Sudo, votre pw est nécessaire):

cd ~/Downloads
tar -xzf `ls -1r jre-*-macosx-x64.tar.gz | head -1`
cd `ls -1rd jre*/ | head -1`
defaults write `pwd`/Contents/Info.plist JavaVM -dict-add 'JVMCapabilities' '<array><string>JNI</string><string>BundledApp</string><string>CommandLine</string></array>'
plutil -convert xml1 Contents/Info.plist
Sudo mv `pwd` /Library/Java/JavaVirtualMachines/
mkdir -p Contents/Home/bundle/Libraries
cd Contents/Home/bundle/Libraries
ln -s ../../lib/server/libjvm.dylib libserver.dylib

fonctionne bien sur mon OS X 10.11

0
rothers