【发布时间】:2017-12-09 15:09:41
【问题描述】:
问题
我正在尝试使用 RNetLogo 包在 R 中启动 NetLogo 实例,该包具有 rJava 作为依赖项。
在安装 rJava 0.9-9(来自 rforge 的最新开发快照)期间,我收到以下错误:
warning: [options] bootstrap class path not set in conjunction with -source 1.6
这似乎是指 Java 版本 6,即使我的机器上只有版本 8。但是,rJava 的开发人员似乎说here 只要包安装和加载正确,它确实如此,那么用户应该忽略警告。此外, .jiit() 似乎运行正确:
> .jinit()
[1] 0
并检测到正确的 Java 版本:
> .jcall("java/lang/System", "S", "getProperty", "java.runtime.version")
[1] "1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12"
所以,在加载了 RNetLogo 之后,我尝试启动一个 NetLogo 实例。这是我正在运行的最小代码:
library(RNetLogo)
nl.path <- "~/NetLogo 6.0.2/app"
NLStart(nl.path, gui = FALSE, nl.jarname='netlogo-6.0.2.jar')
返回以下错误:
java.lang.NoClassDefFoundError: org/nlogo/workspace/Controllable
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
Caused by: java.lang.ClassNotFoundException
at RJavaClassLoader.findClass(RJavaClassLoader.java:383)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
我在使用 RStudio 或从终端运行 R(包括以 root 身份运行)时遇到了同样的问题。
我的完整 sessionInfo():
R version 3.4.3 (2017-11-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 LC_PAPER=en_GB.UTF-8 LC_NAME=en_GB.UTF-8
[9] LC_ADDRESS=en_GB.UTF-8 LC_TELEPHONE=en_GB.UTF-8 LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RNetLogo_1.0-4 igraph_1.1.2 rJava_0.9-9
loaded via a namespace (and not attached):
[1] compiler_3.4.3 magrittr_1.5 tools_3.4.3 pkgconfig_2.0.1
尝试修复
基于其他用户似乎相关的问题,我也尝试了以下操作:
°在/etc/profile.d/中设置环境变量:
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
export PATH="$PATH:$HOME/bin:$JAVA_HOME/bin"
export LD_LIBRARY_PATH="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
export CLASSPATH="$ClASSPATH:$HOME/R/x86_64-pc-linux-gnu-library/3.4/rJava/java"
° 跑步 sudo R CMD javareconf -e
° 在我的脚本开头添加几行建议作为 mac OS 修复:
Sys.setenv(NOAWT=1)
dyn.load('/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so')
提前致谢。
【问题讨论】:
标签: java r ubuntu netlogo rjava