我有一个使用“ xlsx”作为依赖项的软件包,并且如果我从本地文件执行此软件包,该软件包会很好地安装库。 library(packagename)
可以正常工作,library(xlsx)
和library(rJava)
也可以。我们刚刚开始实施一些急需的版本控制的过程,但是,当尝试从git存储库安装相同的软件包时,出现以下错误:
devtools::install_git(path)
...
** building package indices
** testing if installed package can be loaded
*** arch - i386
Error: package or namespace load failed for 'xlsx':
.onLoad failed in loadNamespace() for 'rJava', details:
call: fun(libname, pkgname)
error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.
Error : package 'xlsx' could not be loaded
Error: loading failed
Execution halted
*** arch - x64
ERROR: loading failed for 'i386'
我还尝试将rJava
之前列出的Depends:
中的DESCRIPTION
下的xlsx
,并得到相同的错误。
似乎其他人在加载rJava时也遇到了相同的错误,所以我尝试了其中一些建议(Problems when trying to load a package in R due to rJava)。
系统信息:
> Sys.info()[c("sysname", "release", "version", "machine")]
sysname release version machine
"Windows" "Server >= 2012 x64" "build 9200" "x86-64"
我已经检查过,并且肯定使用64位R
R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
看来Java版本也是64位。
> system("java -version")
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
我还检查了“ JAVA_HOME”
> Sys.getenv("JAVA_HOME")
[1] ""
> Sys.getenv("JAVA")
[1] ""
我不确定为什么该软件包可以作为软件包的本地版本中的依赖项正常运行,但是从存储库安装时却不能运行。我知道我们可以在所有脚本中添加一个库(xlsx)来强制解决此问题,但是很高兴了解导致此问题的原因。