首页 > 解决方案 > rJava 库可以作为本地的包依赖项,但不能来自 Git 存储库

问题描述

我有一个使用“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:,得到了同样的错误。DESCRIPTIONxlsx

似乎其他人在加载 rJava 时遇到了同样的错误,所以我尝试了其中的一些建议(尝试在 R 中加载包时出现问题,因为 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)来强制解决这个问题,但是很高兴了解是什么导致了这个问题。

标签: javargitrjava

解决方案


推荐阅读