簡體   English   中英

Java、rJava 安裝在 AWS EC2 for R(xlsx 和其他包)上

[英]Java, rJava install on AWS EC2 for R (xlsx and other packages)

我已經在運行 Ubuntu 16.04.LTS 和 RStudio(請參閱下面的sessionInfo()輸出)的情況​​下重新激活了我休眠的 Amazon EC2 微實例(感謝Louis Aslett 的AMI)。 在首先通過 ssh 連接到 AWS 實例后,我運行了sudo apt-get update

當我嘗試在 R Studio 中安裝一些軟件包(例如 xlsx 和其他軟件包)時(由於缺少 Java,我遇到了一個錯誤,這似乎是一個常見問題)。 我跟着建議:1)安裝依賴(例如用於xlsxrJava ,和xlsxjars分開; 2) 按照此處的建議apt-get install r-cran-rjava 然后檢查安裝的java -version顯示

openjdk 版本“1.8.0_131”
OpenJDK 運行時環境(構建 1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11)
OpenJDK 64 位服務器 VM(構建 25.131-b11,混合模式)

提出了類似的問題“升級到 OSX Yosemite 后 RStudio/R 中的 rJava 加載錯誤”和這里的“ 錯誤:無法加載已安裝的包... ”,其中的解決方案似乎是將 java 的路徑鏈接到 R export LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH或設置 R 的環境。 變量Sys.setenv(JAVA_HOME='/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server')

然而,運行R CMD javareconf -e揭示了(我想)一些更深層次的問題(見圖像)和/或片段:

 R CMD javareconf -e Java interpreter : /usr/lib/jvm/default-java/jre/bin/java Java version : 1.8.0_131 Java home path : /usr/lib/jvm/default-java Java compiler : not present Java headers gen.: Java archive tool: trying to compile and link a JNI program detected JNI cpp flags : detected JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o conftest.c:1:17: fatal error: jni.h: No such file or directory compilation terminated. /usr/lib/R/etc/Makeconf:132: recipe for target 'conftest.o' failed make: *** [conftest.o] Error 1 Unable to compile a JNI program The following Java variables have been exported: JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH Running: /bin/bash

使用 Java 編譯器:不存在且

conftest.c:1:17:致命錯誤: jni.h: 沒有這樣的文件或目錄編譯終止。 /usr/lib/R/etc/Makeconf:132: 目標“conftest.o”的配方失敗

然后我發現了一個問題“ 如何找到 jni.h? ”:這里最好的解決方案建議gcc -I/usr/lib/jvm/jdk1.7.0_07/include檢查同一目錄cd /usr/lib/jvm/並列出其內容ls --all顯示:

.default-java
.java-1.8.0-openjdk-amd64.jinfo
..java-1.8.0-openjdk-amd64 java-8-openjdk-amd64

運行, gcc -I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include導致: gcc: fatal error: no input files另外,我試過sudo apt-get install openjdk-X-jdk (它是建議的答案之一“ 如何找到 jni.h? ”)但可能該軟件包不再存在“無法找到軟件包 openjdk-X-jdk”。

不幸的是,我被卡住了,並且沒有足夠的技能來實現其他(看似更復雜的解決方案)。 我真的很感激一些幫助/輸入。

 R version 3.3.1 (2016-06-21) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 16.04.1 LTS locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] parallel compiler stats graphics grDevices utils datasets [8] methods base other attached packages: [1] openxlsx_4.0.17 qdapTools_1.3.1 qdapRegex_0.7.2 [4] qdapDictionaries_1.0.6 stringr_1.1.0 stringi_1.1.2 [7] dplyr_0.5.0 tm_0.7-1 NLP_0.1-10 [10] scales_0.4.0 RColorBrewer_1.1-2 ParallelForest_1.1.0 [13] doMC_1.3.4 iterators_1.0.8 foreach_1.4.3 [16] boot_1.3-18 reshape2_1.4.1 glmm_1.1.1 [19] Matrix_1.2-6 mvtnorm_1.0-5 trust_0.1-7 [22] ggplot2_2.1.0 shiny_0.13.2 loaded via a namespace (and not attached): [1] gtools_3.5.0 slam_0.1-40 lattice_0.20-33 [4] colorspace_1.2-7 htmltools_0.3.5 chron_2.3-50 [7] XML_3.98-1.7 DBI_0.5-1 plyr_1.8.4 [10] munsell_0.4.3 gtable_0.2.0 codetools_0.2-14 [13] httpuv_1.3.3 gender_0.5.1 Rcpp_0.12.7 [16] xtable_1.8-2 gdata_2.17.0 mime_0.5 [19] gridExtra_2.2.1 digest_0.6.10 grid_3.3.1 [22] tools_3.3.1 bitops_1.0-6 magrittr_1.5 [25] RCurl_1.95-4.8 tibble_1.2 data.table_1.10.4 [28] assertthat_0.1 R6_2.2.0 igraph_1.0.1

你需要安裝JDK。 也看看這里。

http://www.owsiak.org/?p=3671

我在這里描述了如何使用 R、Java 和 rJava 包。 即使描述是基於 macOS,它也應該適用於 Linux。 這是非常通用的方法。

您的問題與您使用 JRE 而不是 JDK 的事實有關。 那里缺少 JNI 標頭。

我的一個朋友建議使用sudo apt-get install openjdk-8-jdk在 ec2 實例上安裝 java,有趣的是,它解決了這個問題。

兩年太晚了,但對我有用的是按照此鏈接https://www.r-bloggers.com/installing-rjava-on-ubuntu/上的說明進行操作。 在發表評論時,他們是:

# Install the Java Runtime Environment (JRE).
sudo apt-get install -y default-jre

# Install the Java Development Kit (JDK).
sudo apt-get install -y default-jdk

# Update where R expects to find various Java files.
sudo R CMD javareconf

# Install the package.
> install.packages("rJava")

暫無
暫無

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

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