在RStudio中使用RWeka M5P会产生java.lang.NoClassDefFoundError:no / uib / cipr / matrix / Matrix

时间:2017-01-26 16:26:04

标签: java matrix rstudio rjava rweka

我有一个R脚本在我使用RWeka的M5P算法的情况下工作得很好。

由于我不知道的原因,它停止正常工作,现在我得到了

Error in .jcall(o, "Ljava/lang/Class;", "getClass") : 
    java.lang.NoClassDefFoundError: no/uib/cipr/matrix/Matrix

据推测,这与我更新RStudio或Windows或R或某些软件包有关。奇怪的是,当我从简单的R gui运行它时脚本工作正常。所以这似乎与RStudio和rJava有关(一个可能的问题来源指出here)。不过,我不知道如何解决这个问题,到目前为止我读到的所有建议都涉及MacOS或Linux,但我在Windows 10上。我的Java版本是

java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) Client VM (build 25.72-b15, mixed mode)

我的同事可以在Windows 10上运行相同的脚本(由于公司策略而导致相同的更新)和RStudio(相同版本:1.0.136)。她的Java版本是

java version "1.8.0_101",
Java(TM) SE Runtime Environment (build   1.8.0_101-b13),
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

所以在我的电脑上似乎有些意外的错误配置,但我不知道在哪里看。

任何人都可以帮助我吗?

  

平台x86_64-w64-mingw32 arch x86_64
  os mingw32 system x86_64,   mingw32状态专业   3小3.2   2016年10月11日   第31天svn rev 71607
  language R version.string R version   3.3.2(2016-10-31)昵称真诚的南瓜补丁

1 个答案:

答案 0 :(得分:4)

在阅读RWeka Odds and Ends之后,我意识到,我的WEKA_HOME已设置为我的个人资料中的路径,并且Weka包管理器(WPM)似乎在保存必要的模块方面存在问题。解决方案是设置我的硬盘驱动器的路径并刷新缓存。

Sys.getenv("WEKA_HOME") # where does it point to? Maybe some obscure path? 
# if yes, correct the variable:
Sys.setenv(WEKA_HOME="C:\\MY\\PATH\\WEKA_WPM")
library(RWeka)
WPM("list-packages", "installed")

之后,一切恢复正常,M5P像以前一样工作。