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

Java、rJava安装在AWS EC2 for R(xlsx和其他软件包)上,java,r,amazon-web-services,amazon-ec2,ubuntu-server,Java,R,Amazon Web Services,Amazon Ec2,Ubuntu Server,我已经用Ubuntu 16.04.LTS和RStudio(见下面的sessionInfo()output)重新激活了休眠的Amazon EC2微实例(多亏了AMI by)。在首先ssh绑定到AWS实例之后,我运行了sudo apt get update 当我尝试在R Studio中安装一些软件包(例如xlsx和其他软件包)时(我遇到了一个错误,因为缺少Java,这似乎是一个常见的问题)。我按照建议1)安装依赖项(例如xlsx如rJava和xlsxjars);2) 根据建议安装r-cran-rja

我已经用Ubuntu 16.04.LTS和RStudio(见下面的
sessionInfo()
output)重新激活了休眠的Amazon EC2微实例(多亏了AMI by)。在首先ssh绑定到AWS实例之后,我运行了
sudo apt get update

当我尝试在R Studio中安装一些软件包(例如xlsx和其他软件包)时(我遇到了一个错误,因为缺少Java,这似乎是一个常见的问题)。我按照建议1)安装依赖项(例如
xlsx
rJava
xlsxjars
);2)
根据建议安装r-cran-rjava
。然后检查已安装的
java-version
显示

openjdk版本“1.8.0_131”
OpenJDK运行时环境(构建1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11)
OpenJDK 64位服务器虚拟机(构建25.131-b11,混合模式)

类似的问题也被提出了“”,这里的“”,解决方案似乎是将java的路径链接到R
export-LD\u-LIBRARY\u-path=$java\u-LD\u-LIBRARY\u-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解释器:/usr/lib/jvm/default Java/jre/bin/Java
Java版本:1.8.0131
Java主路径:/usr/lib/jvm/default Java
Java编译器:不存在
Java头文件生成:
Java存档工具:
试图编译和链接JNI程序
检测到JNI cpp标志:
检测到JNI链接器标志:-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=格式安全性-Wdate时间-D_加强_源=2-g-c conftest.c-o conftest.o
conftest.c:1:17:致命错误:jni.h:没有这样的文件或目录
编译终止。
/usr/lib/R/etc/Makeconf:132:目标'conftest.o'的配方失败
make:**[conftest.o]错误1
无法编译JNI程序
已导出以下Java变量:
JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_路径

运行:/bin/bash
我的一个朋友建议使用
sudo-apt-get-install-openjdk-8-jdk
在ec2实例上安装java,有趣的是,它解决了这个问题

您需要安装JDK。请看这里

在这里,我描述了如何使用R、Java和rJava包。即使描述是基于macOS的,它也应该适用于Linux。这是一个相当普遍的方法


您的问题与使用JRE而不是JDK有关。那里缺少JNI头。

已经晚了两年,但对我来说有效的方法是遵循此链接上的说明
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")


虽然我通常不说使用另一个工具,但是你能考虑使用<代码> RexXL< /Cuth>包吗?它不依赖于Java,因此可以避免所有这些麻烦。谢谢你的回答和好主意。事实上,我想运行一个闪亮的应用程序,我(真正)的问题不是xlsx,而是qdap。感谢您提供有洞察力的网站。