web-dev-qa-db-ja.com

Mac OS 10.11でR xlsxパッケージをロードできません

RJavaおよびxlsxjarsパッケージをロードできますが、library(xlsx)を実行すると「JVMのロードに失敗しました」というメッセージが表示されます。以下は私の詳細です。

OSバージョン:

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

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)

Javaパス:

$ which Java
/usr/bin/Java

Javaホーム:

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

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)

Rの起動方法:

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

RJavaおよびxlsxjarsパッケージを正常にロードします。

> library(rJava)
> library(xlsxjars)

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構成:

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

残念ながら、これらのシンボリックリンクのトリックは私を助けませんでした。ただし、 stackoverflow !で同様の問題が見つかりました! (他の場所;))これは、以下を行うことで私のために働いた:

  1. ターミナルで次を入力して、Javaを正しく再リンクします。

    Sudo R CMD javareconf
    
  2. R(またはRStudio)に戻って、ソースからrJavaパッケージをインストールします。

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

お役に立てれば!

59
SanjayIV

また、openNLP、xlsx、RWekaなどのパッケージのロードにも問題があり、同じエラーメッセージが表示されます。しかし最後に、このコマンドはOS X 10.11.3で機能しました:Sudo ln -s $(/usr/libexec/Java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

13
Tobias Mini

R xlsxパッケージが組み込まれているJavaのバージョンに問題がある可能性があります。一部の古いソフトウェアでは、OS X 10.11 El Capitan、OS XのJava 6をインストールする必要があります10.10 Yosemite、OS X 10.9 Mavericks、OS X 10.8 Mountain Lion、およびOS X 10.7 Lion。そのため、Java(OS X 2015-001のJava)のこの古いバージョンをApple Webサイト、以下のリンクにインストールしてみてください: https://support.Apple .com/kb/DL1572?locale = pt_BR&viewlocale = en_US

Java SE Development Kit 8があるかどうかを確認します。OracleWebサイトからダウンロードできます。リンクは次のとおりです。 www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads -2133151.html

私は同じ問題を抱えていましたが、Javaの古いバージョンをダウンロードして解決しました。これがあなたのお役に立てば幸いです!

2
Iuri

基本的に、ここで説明されていることを行うだけです。 https://oliverdowling.com.au/2015/10/09/oracles-jre-8-on-mac-os-x-el-capitan/

短いバージョン:d/l Java tarファイルとしてのOracleのJRE http://www.Oracle.com/technetwork/Java/javase/downloads/jre8-downloads-2133155.html =

次に、これを端末に入れます(Sudoの場合、pwが必要です)。

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

oS X 10.11で正常に動作します

0
rothers