Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ls中的错误(envir=envir,all.names=private):无效';envir';R中的参数_Java_R_Environment Variables_Rjava - Fatal编程技术网

Java ls中的错误(envir=envir,all.names=private):无效';envir';R中的参数

Java 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,应该是某个值,但我认为

我在R中使用包加载数据时遇到了这个错误,在这个包中,使用了pakcage
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),以便获得堆栈跟踪。非常感谢,很遗憾,我不再参与该项目。但我会通知负责人,让他试试~