Java ls中的错误(envir=envir,all.names=private):无效';envir';R中的参数
我在R中使用包加载数据时遇到了这个错误,在这个包中,使用了pakcageJava ls中的错误(envir=envir,all.names=private):无效';envir';R中的参数,java,r,environment-variables,rjava,Java,R,Environment Variables,Rjava,我在R中使用包加载数据时遇到了这个错误,在这个包中,使用了pakcagerJava 每次运行函数时,错误都是 Error in ls(envir = envir, all.names = private) : invalid 'envir' argument 这个软件包已经被证明没有任何问题,只是我的计算机中的一些环境问题 当我调试时,我在之前的最后一个过程中发现了这一点 ls(envir=envir,all.names=private) 变量envir是NULL,应该是某个值,但我认为
rJava
每次运行函数时,错误都是
Error in ls(envir = envir, all.names = private) :
invalid 'envir' argument
这个软件包已经被证明没有任何问题,只是我的计算机中的一些环境问题
当我调试时,我在之前的最后一个过程中发现了这一点
ls(envir=envir,all.names=private)
变量envir
是NULL
,应该是某个值,但我认为不是NULL
经过一些试验,我通过每次安装rJava
解决了这个问题。此外,只有当错误出现时,我才安装“rJava”,它才能工作。如果我第一次安装,它将无法工作。所以,我想,安装“rJava”(或者可能安装软件包)会导致一些环境变量发生变化
测试了Java7和Java8,包括jdk或jre,但都不起作用。对于R,我使用的是3.1.3 R,所有的软件包都是最新的
以下是一些我认为可能对故障排除有用的信息
通过安装包,jvm.dll需要添加到windows环境路径:“path”
,我做到了
我的sessionInfo如下所示:
R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C
[5] LC_TIME=Danish_Denmark.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] rgdal_0.9-1 fields_8.2-1 spam_1.0-1 raster_2.3-33 sp_1.0-17 ecomsUDG.Raccess_2.2-6
[7] downscaleR_0.5-2 maps_2.3-9 downscaleR.java_0.0-2 rJava_0.9-6 gWidgetsRGtk2_0.0-83 cairoDevice_2.22
[13] RGtk2_2.20.31 gWidgets_0.0-54 R.utils_2.0.0 R.oo_1.19.0 R.methodsS3_1.7.0
loaded via a namespace (and not attached):
[1] abind_1.4-3 bitops_1.0-6 boot_1.3-15 CircStats_0.2-4 colorspace_1.2-6 dtw_1.17-1 lattice_0.20-30 MASS_7.3-39
[9] munsell_0.4.2 plyr_1.8.1 proxy_0.4-14 Rcpp_0.11.5 RCurl_1.95-4.5 scales_0.2.4 tools_3.1.3 verification_1.41
感谢您提供的帮助。您的问题已经完全解决了吗?就在几天前,我遇到了一个类似的问题,我将其整理出来,并希望与社区分享。实际上,那些包装器函数(在我的例子中是Rbbg包)调用rJava函数时,在C驱动器下的用户文件夹中有一个日志文件,您可以删除这些日志文件,因为它将使您能够从错误消息中逃脱
在我的例子中,我需要删除Rbbg包创建的blpjavaapi0.log.0和org.findata.blpwrapper.0文件。环境变量是一个操作系统概念,可以通过
Sys.getenv
和Sys.setenv
在R中访问它们。它们基本上是变量名到值的映射,例如JAVA\u HOME=C:\Program Files\JAVA\jre6
。另一方面,R环境类似于将名称映射到任何R对象的列表。请参阅:ls()
返回由envir
参数指定的R环境中所有名称的向量。调用ls(envir=NULL)
没有任何意义,因此您会出错。@logworthy谢谢,但不是我调用的…它在包中…问题不是调用ls()
,而是找不到有效的envir
…您应该添加更多调试信息。阅读R中的调试,例如,在运行代码之前使用选项(error=recover),以便获得堆栈跟踪。非常感谢,很遗憾,我不再参与该项目。但我会通知负责人,让他试试~