Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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依赖关系的R包(出于安全原因)_Java_R_Installation_Package_Rjava - Fatal编程技术网

发现所有安装的具有Java依赖关系的R包(出于安全原因)

发现所有安装的具有Java依赖关系的R包(出于安全原因),java,r,installation,package,rjava,Java,R,Installation,Package,Rjava,出于安全原因,我被迫在与R一起使用的机器上卸载Java(JRE) 如何(轻松:-)发现所有使用Java的已安装软件包?您可以使用installed.packages确定哪些软件包导入rJava软件包。您需要告知已安装。软件包以包含软件包说明中的导入字段,然后检查哪些软件包导入了rJava LIBS = installed.packages(fields=c("Imports")) JPacks = grep("Java", LIBS[,"Imports"], ignore.case=TRUE)

出于安全原因,我被迫在与R一起使用的机器上卸载Java(JRE)


如何(轻松:-)发现所有使用Java的已安装软件包?

您可以使用
installed.packages
确定哪些软件包导入
rJava
软件包。您需要告知
已安装。软件包
以包含软件包说明中的
导入
字段,然后检查哪些软件包导入了
rJava

LIBS = installed.packages(fields=c("Imports"))
JPacks = grep("Java", LIBS[,"Imports"], ignore.case=TRUE)
LIBS[JPacks, c("Package", "Imports")]
          Package    
RWeka     "RWeka"    
RWekajars "RWekajars"
          Imports                                                                
RWeka     "RWekajars (>= 3.9.0), rJava (>= 0.6-3), graphics, stats,\nutils, grid"
RWekajars "rJava (>= 0.6-3)"

我还考虑了来自
rJAva
包的其他类型的依赖项,从而扩展了@GSW答案的解决方案:

LIBS       = installed.packages()
imports    = grep("Java", LIBS[,"Imports"],   ignore.case=TRUE)
depends    = grep("Java", LIBS[,"Depends"],   ignore.case=TRUE)
linking.to = grep("Java", LIBS[,"LinkingTo"], ignore.case=TRUE)
enhances   = grep("Java", LIBS[,"Enhances"],  ignore.case=TRUE)

LIBS[c(imports, depends, linking.to, enhances),
     c("Package", "Imports", "Depends", "LinkingTo", "Enhances")]
现在发现e。g<代码>xlsx:

         Package    Imports Depends           LinkingTo Enhances
xlsx     "xlsx"     NA      "rJava, xlsxjars" NA        NA      
xlsxjars "xlsxjars" NA      "rJava"           NA        NA      

所以你需要卸载一个
jre
和所有其他可能使用它的软件?很抱歉使用了“java”标记,这可能更像是一个R问题。是的,但是R主要是C++和大多数包(库)在R、C和C++中实现的。我只想卸载那些调用Java/JREah的R包!对不起,我帮不了你,回答得很好!
rJava
是R中的包使用Java的唯一方法吗?我知道的唯一方法:-)