发现所有安装的具有Java依赖关系的R包(出于安全原因)
出于安全原因,我被迫在与R一起使用的机器上卸载Java(JRE)发现所有安装的具有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)
如何(轻松:-)发现所有使用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的唯一方法吗?我知道的唯一方法:-)