【发布时间】:2017-03-14 19:10:25
【问题描述】:
我需要将一些 R 数据导出为格式化的 excel 文件,并且之前在 R 中成功使用了 XLConnect 和 xlsx 包。我最近搬到了 64 位 R 并且无法工作。我在一堆其他包中处理了一些 Oracle/Java 架构冲突。我敢肯定这里发生了类似的事情,但我无法破解它。
当我打电话给library(XLConnect)、rJava 和XLConnectJars 时,附上没有问题。
这是错误和会话信息:
> library(XLConnect)
Loading required package: XLConnectJars
Error : .onLoad failed in loadNamespace() for 'XLConnect', details:
call: .jfindClass(as.character(class))
error: class not found
Error: package or namespace load failed for ‘XLConnect’
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] XLConnectJars_0.2-12
loaded via a namespace (and not attached):
[1] rsconnect_0.4.3 tools_3.3.1 rJava_0.9-8
我在尝试附加 xlsx 时遇到类似错误。
> library(xlsx)
Loading required package: rJava
Loading required package: xlsxjars
Error : .onAttach failed in attachNamespace() for 'xlsx', details:
call: .jnew("org/apache/poi/xssf/usermodel/XSSFWorkbook")
error: java.lang.UnsupportedClassVersionError: Bad version number in .class file
Error: package or namespace load failed for ‘xlsx’
如果我切换到 32 位 R,XLConnect 和 xlsx 都可以正常运行。我真的需要运行 64 位 R 来满足其他要求。
【问题讨论】:
-
我使用
readxl导入 Excel 文件 - 没有问题。我只有几个需要格式化 Excel 输出的项目。我的JAVA_HOME变量确实指向 64 位 jre。rJava加载正常 - 应该使用 64 位 Java。