运行Rcmd.exe时捕获R输出

时间:2019-07-16 20:57:54

标签: r installation package

我有一行代码可以捕获安装的Java版本的输出:

version <- system2("java","-version", stdout=TRUE)

但是,如果在.onLoad函数中创建程序包时包括该行代码,则在构建时会遇到问题。

.onLoad <- function(libname, pkgname){
  version <- system2("java","-version", stdout=TRUE)
  if(length(version)==0){
    stop("Missing version")
  }
}

使用默认的RStudio“ Clean and Rebuild”,我既可以看到输出显示在命令行中(Java部分),又可以看到代码有错误,表明输出的长度为0:

  

==> Rcmd.exe安装--preclean --no-multiarch --with-keep.source测试包

     

*安装到库'C:/Users/JNolis2/Documents/R/win-library/3.5'

     

*正在安装 source 包“ testpackage” ...

     

** R

     

**字节编译并准备用于延迟加载的包

     

**帮助

     

***安装帮助索引

     

转换软件包“ testpackage”的帮助

     

查找HTML链接...您好html

     

完成

     

**建筑包装指数

     

**测试是否可以加载已安装的软件包

     

java版本“ 10.0.1” 2018-04-17

     

Java(TM)SE运行时环境18.3(内部版本10.0.1 + 10)

     

Java HotSpot(TM)64位服务器VM 18.3(内部版本10.0.1 + 10,混合模式)

     

错误:“ testpackage”的软件包或名称空间加载失败:

     

.onLoad在'testpackage'的loadNamespace()中失败,详细信息:

     

通话:fun(libname,pkgname)

     

错误:缺少版本

     

错误:加载失败

     

执行停止

     

错误:加载失败

     
      
  • 删除“ C:/Users/JNolis2/Documents/R/win-library/3.5/testpackage”
  •   
     

在R CMD安装中

     

以状态1退出。

即使在此步骤期间,如何确保输出被捕获?

0 个答案:

没有答案