当前位置: 首页 > 知识库问答 >
问题:

R:如何设置JDK与R一起工作(相关:rJava,RStudio,xslx)

龚招
2023-03-14

我对编程和R都是新手,但是,我正在尝试安装“xlsx”包(以及XLConnect),以便通过R操作Excel文件。我在Mac OSX 10.12.6上运行RStudio版本1.0.153,R版本3.4.2。

首先,我尝试通过RStudio使用install.packages('xlsx')安装软件包,并使用库('xlsx')加载软件包。我收到此错误:

> library('xlsx')
Loading required package: rJava
Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
 call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so': 
dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
 Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
 Reason: image not found
Error: package ‘rJava’ could not be loaded

所以我尝试用install.packages('rJava')安装rJava包,并用库('rJava')加载它。

>  library('rJava')
    Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
  Reason: image not found

此外,我尝试通过以下链接直接从CRAN下载并安装rJava:https://cran.r-project.org/web/packages/rJava/index.html

我用下载的本地文件在RStudio中安装了这个,得到了这样的结果:

> install.packages("~/Downloads/rJava_0.9-9 (1).tar.gz", repos = NULL, type = "source")
* installing *source* package ‘rJava’ ...
** package ‘rJava’ successfully unpacked and MD5 sums checked
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking how to run the C preprocessor... clang -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... 
rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
configure: checking whether clang supports static inline...
yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/../include/darwin'
java libs   : '-L/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/server -ljvm'
checking whether Java run-time works... yes
checking whether -Xrs is supported... yes
checking whether JNI programs can be compiled... 
configure: error: Cannot compile a simple JNI program. See config.log for details.

Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.

ERROR: configuration failed for package ‘rJava’
* removing ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava’
Warning in install.packages :
  installation of package ‘/Users/ivers1/Downloads/rJava_0.9-9 (1).tar.gz’ had non-zero exit status

我四处寻找这个问题的解决方案,我找到的几个线程建议从终端< code > sudo r cmd javareconfig 运行下面的代码,这应该会重置Java环境。但是,当我从终端运行这段代码时,我得到了以下结果:

> sudo r cmd javareconf

ARGUMENT 'cmd' __ignored__

ARGUMENT 'javareconf' __ignored__


R version 3.4.2 (2017-09-28) -- "Short Summer"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin15.6.0 (64-bit)

... 
...
...

终端忽略给定的参数,只返回r的版本信息。

现在我不知道该怎么办。有没有人有解决这个问题的建议?

共有2个答案

弘承业
2023-03-14

我也遇到了同样的问题。我更新了我的RStudio并再次安装了软件包。这对我来说很有魅力。

吴腾
2023-03-14

我使用了RStudio提供的命令。注意大小写,因为该命令区分大小写:

sudo R CMD javareconf
 类似资料:
  • 问题内容: 我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或RStudio时,立即弹出消息,提示我需要安装rJavaJava6 。此外,加载或依赖rJava的任何软件包(例如)都导致崩溃(R也崩溃了)当我通过直接打开尝试此操作时)。 在尝试了在和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载rJava或依赖的任何程序包

  • 问题内容: 我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或时,立即弹出消息提示我需要安装 。此外,加载或依赖rJava的任何软件包(例如xlsx)都导致RStudio崩溃(R也崩溃了)当我通过R.app直接打开尝试此操作时)。 在尝试了和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载或依赖的任何程序包不再导致R崩溃,

  • 问题内容: 我在macOS sierra(10.12.5)上运行R(版本3.4.0),并且尝试使用xlsx库,该库要求使用rJava库。 当我尝试在R控制台中使用rJava加载时(无论是在RStudio中还是在终端中),都会收到以下错误消息,使我难以理解: 在这个问题上进行了搜索,我发现了许多类似的帖子(但每次都有一些不同的问题),其中最有前途的就是这个SO问题。 由于建议的步骤需要适应我的情况,

  • 问题内容: 我在带有R版本3.5.1的Ubuntu 18.04计算机上,通过此链接安装。我试图安装CRAN包 rJava ,这是我做下面的方式(如看到这里): 但是,我得到这个: 但是当我尝试: 我得到: 如何克服这个问题呢?基本上,我需要安装才能安装和使用。在Ubuntu 16.04中,我没有任何问题。 编辑: 显然,应由提供。我确实已经安装了最新版本,为什么我仍然看到错误? 问题答案: API

  • 所以,这基本上是我在调用rjava时遇到的错误: 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(file,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/versions/3.6/resources/

  • 虽然我有重复问题的风险,但我还没有找到配置的解决方案。 我正在尝试将rJava加载到RStudio中。 我使用的是最新的Mac OS x,Rstudio版本只有几个月的历史,我刚刚安装了JDK x64 12.0.1 rJava的版本是0.9-11 执行时: 我面临着通常的情况: 错误:“rJava”的包或命名空间加载失败:。“rJava”的loadNamespace()中的onLoad失败,详细信

  • 我希望在R x64 3.1.2中加载rJava。OS-Windows 8.1 64位 尽管安装似乎工作正常: 我在加载包时出错: 卸载和重新安装R似乎也不能修复问题。 删除旧的java版本也无济于事。

  • 我的java版本如下 之后 安装包装(“rJava”) 我尝试导入rJava包 库(rJava)错误:. onLoad在loadNamespace()中失败为'rJava',详细信息:调用:dyn.load(file, DLLpath=DLLpath,...)错误:无法加载共享对象'/home/ubuntu/R/x86_64-pc-linux-gnu-Library/3.0/rJava/libs/