R-Project:xlsx包安装失败(由于java问题)

R-Project:xlsx包安装失败(由于java问题),java,r,xlsx,rjava,Java,R,Xlsx,Rjava,我试图安装xlsx包,不幸的是,Java有一个问题,我无法解决 请在下面找到尝试安装xlsx包时产生的输出 以下是输出: 已安装Java: java -version java-version提供以下输出: java version "1.7.0_71" OpenJDK Runtime Environment (fedora-2.5.3.0.fc20-x86_64 u71-b14) OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

我试图安装xlsx包,不幸的是,Java有一个问题,我无法解决

请在下面找到尝试安装xlsx包时产生的输出

以下是输出:

已安装Java:

java -version
java-version提供以下输出:

java version "1.7.0_71"
OpenJDK Runtime Environment (fedora-2.5.3.0.fc20-x86_64 u71-b14)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
“sudo R CMD javareconf”导致:

Java interpreter : /bin/java
Java version     : 1.7.0_71
Java home path   : /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java compiler    : /bin/javac
Java headers gen.: /bin/javah
Java archive tool: /bin/jar

trying to compile and link a JNI progam 
detected JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic  -c conftest.c -o conftest.o
gcc -m64 -std=gnu99 -shared -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server -ljvm -L/usr/lib64/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java library path: $(JAVA_HOME)/lib/amd64/server
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
Updating Java configuration in /usr/lib64/R
Done.
checking Java support in R... present:
interpreter : '/bin/java'
archiver    : '/bin/jar'
compiler    : '/bin/javac'
header prep.: '/bin/javah'
cpp flags   : '-I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux'
java libs   : '-L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server -ljvm'
checking whether Java run-time works... 
Error: Could not find or load main class getsp
no
configure: error: Java interpreter '/bin/java' does not work
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpnl17m7/downloaded_packages’
尽管如此,install.packages('rJava')会导致:

Java interpreter : /bin/java
Java version     : 1.7.0_71
Java home path   : /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java compiler    : /bin/javac
Java headers gen.: /bin/javah
Java archive tool: /bin/jar

trying to compile and link a JNI progam 
detected JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic  -c conftest.c -o conftest.o
gcc -m64 -std=gnu99 -shared -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server -ljvm -L/usr/lib64/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre
Java library path: $(JAVA_HOME)/lib/amd64/server
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm
Updating Java configuration in /usr/lib64/R
Done.
checking Java support in R... present:
interpreter : '/bin/java'
archiver    : '/bin/jar'
compiler    : '/bin/javac'
header prep.: '/bin/javah'
cpp flags   : '-I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/../include/linux'
java libs   : '-L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.0.fc20.x86_64/jre/lib/amd64/server -ljvm'
checking whether Java run-time works... 
Error: Could not find or load main class getsp
no
configure: error: Java interpreter '/bin/java' does not work
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpnl17m7/downloaded_packages’
我不知道如何解决这个java问题。我和RStudio和Fedora一起工作。 非常感谢你的帮助

谢谢


Tamas

如果安装了Java,请尝试从命令行重置R的Java配置

sudo R CMD javareconf
然后再次尝试安装rJava(您可以先重新启动RStudio)

如果这仍然不能解决您的问题,则错误显示R无法加载getsp:

checking whether Java run-time works... 
Error: Could not find or load main class getsp
首先验证getsp是否可访问

locate getsp
输出可能包含多个项目,但您应该发现如下内容:

/usr/share/R/share/java/getsp.class
然后,我们希望可以访问它,以便导出它,以便R可以找到它:

export CLASSPATH=/usr/share/R/share/java
在同一窗口中,启动另一个R会话,然后再次尝试安装
rJava

另一件需要休息的事情是JAVA_HOME并重新运行
javareconf

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64/jre
export PATH=$PATH:$JAVA_HOME/bin
sudo R CMD javareconf
还建议在中
取消设置类路径
,因为这可能会导致其他问题。如果仍然无法解决问题,您可能应该在尝试更改JAVA_主页并再次重置之前执行此操作

编辑


考虑到这个问题已经有相当一段时间没有得到回答,我想我也应该添加我的建议,只使用不使用Java的包。它安装起来容易多了,是tidyverse的一部分。对于那些试图使用excel文件的人来说,这只是一个一般性的建议。

好的,我最终通过将“JAVA_HOME=/usr/lib/jvm/JAVA-1.8.0-openjdk-1.8.0.25.x86_64/jre/”添加到我的主文件夹中的.bashrc来管理它

谢谢你的帮助,克莱特曼


Best Tamas

此解决方案对我非常有效:

https://orajavasolutions.wordpress.com/2014/06/03/installing-and-loading-xlsx-package-in-r-with-ubuntu/

这是Java的问题。我认为您尚未在系统上安装Java。检查是否已安装Java:

java -version
如果返回“以下包中可以找到java程序”,则java尚未安装,因此执行以下命令:

sudo apt-get install default-jre
sudo apt-get install default-jdk

然后尝试重新安装软件包。

您的系统上是否安装了java<代码>java-版本是的,请看下面我的更新帖子。仍然不工作。详见上文。谢谢。:错误:无法找到或加载主类getsp no configure:错误:Java解释器“/bin/Java”不工作错误:包“rJava”*的配置失败删除“/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava”安装中出现警告。包:包“rJava”的安装具有非零退出状态如上所述,但仍然是:检查Java运行时是否工作。。。错误:无法找到或加载主类getsp no configure:错误:Java解释器“/bin/Java”不工作错误:包“rJava”*的配置失败删除“/home/tamaspavlicek/R/x86_64-redhat-linux-gnu-library/3.1/rJava”我将类路径信息导出到哪里?找到getsp了吗?您正在导出环境变量
export CLASSPATH=/usr/…
在命令行上运行。是的,我确实使用了:locate getsp.class,以及其他“/usr/share/R/java/getsp.class”找到了它,因此我使用了“export CLASSPATH=/usr/share/R/java”对上面添加的java\u HOME进行了进一步的思考。如果您相信我的答案是正确的(即设置java\u HOME),请接受。否则,请接受你自己的答案,以便其他人知道问题已经解决。请不要使用仅链接的答案:链接会随着时间流逝而消失,然后答案就一文不值了。更确切地说,在你的答案中提供一个简洁的摘要,说明链接的重要和有用部分,以及链接。