簡體   English   中英

無法在 Mac OS 10.11 上加載 R xlsx 包

[英]Cannot load R xlsx package on Mac OS 10.11

我可以加載 rJava 和 xlsxjars 包,但是在執行 library(xlsx) 時出現“無法加載 JVM”。 以下是我的詳細信息。

操作系統版本:

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

爪哇版:

$ 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 --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

不幸的是,這些符號鏈接技巧對我沒有幫助。 但是,我在stackoverflow上發現了類似的問題! (其他地方;))通過執行以下操作,這個對我有用:

  1. 在終端中輸入以下內容以正確重新鏈接 Java:

     sudo R CMD javareconf
  2. 回到 R(或 RStudio),從源代碼安裝 rJava 包:

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

希望這可以幫助!

我在加載 openNLP、xlsx、RWeka 等軟件包時也遇到了問題,並得到了與您相同的錯誤消息。 但最后這個命令在 OS X 10.11.3 上對我有用: sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

內置 R xlsx 包的 Java 版本可能存在問題。一些舊軟件需要為 OS X 10.11 El Capitan、OS X 10.10 Yosemite、OS X 10.9 Mavericks、OS X 10.8 Mountain 安裝 Java 6 Lion 和 OS X 10.7 Lion。 所以你可以嘗試在 Apple 網站上安裝這個舊版本的 Java(Java for OS X 2015-001),鏈接如下: https : //support.apple.com/kb/DL1572? locale=pt_BR&viewlocale=en_US

並檢查您是否有 Java SE Development Kit 8。您可以在 Oracle 網站下載,鏈接如下: www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

我遇到了同樣的問題,下載舊版本的 Java 解決了它.. 希望這對你有幫助!

基本上,只需執行此處描述的操作: https : //oliverdowling.com.au/2015/10/09/oracles-jre-8-on-mac-os-x-el-capitan/

短版:來自 oracle 的 d/l Java JRE 作為 tar 文件http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

然后將其放入您的終端(對於 sudo,需要您的密碼):

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 上運行良好

對我來說,MacOS Catalina 10.15.7,就像安裝當前的 JRE 和 JDK 軟件一樣簡單(從 java.com 和 oracle.com 上的官方發行商網站下載為 .dmg 文件 - 沒有任何隸屬關系!)。

我也(重新)安裝了 rJava 包,但我覺得沒有必要。 我實際上只是沒有在我的計算機上安裝 Java。

現在xlsx包加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM