[咆哮] 我也缺乏将我的回复放在应有的地方的声誉。那里没有指示这一点的按钮。只是一个充满无处可点击的大屏幕。负面的可发现性很糟糕。它在 Eclipse 中很糟糕,在这里也很糟糕。 [/咆哮]
我发现 rj 在 Ubuntu 下令人沮丧。在我的系统上,每次使用新版本的 R 升级 Ubuntu 时,我都必须重新执行此过程。
有一次我尝试在某个 Eclipse 配置字段的路径名中使用波浪号 (~) 字符。这无声无息地失败了。
我目前的配置如下。在我的 ~/.Renviron 文件中:
R_LIBS_USER=~/etc/R/amd64/2.11
一旦 rJava 工作,这里就有一个 rJava 目录。只是为了不让自己发疯,在 ~/etc/R/README 中我记下我当前的 R 配置是由 ~/.Renviron 控制的
不知何故,我最终遇到了权限问题
R CMD javareconf
失败了。一旦感到沮丧,我愚蠢地在sudo 下运行它来解决这个问题,最终导致生成的文件出现权限问题。愚蠢的!正确的解决方法是使/etc/R 中的所有文件都可读。也许 javareconf 仅在您弄乱默认 Java 时才重要。以前,我正在运行 Sun 的 JRE。从 10.10 开始,我正在运行 icedtea6,它似乎工作正常。有一次只是让我的配置再次工作。
一旦我有正确的 Java 绑定,从命令行 R:
install.packages("rJava")
过去我在运行此程序时遇到过文件权限问题。我认为这是通过使/etc/R 世界可读的所有文件来解决的。
以下是一个有用的诊断,可以从任何 R 控制台中查看这是否有效:
> system.file("jri",package="rJava")
[1] "/home/allan/etc/R/amd64/2.11/rJava/jri"
如果它在 Eclipse 下看起来不正确,也有一些可用的启动调试,尽管我花了很长时间才在 StatET 的文档中注意到这一点。
我为 R 2.11 debug 创建了一个 R 控制台运行配置,在 JRE 选项卡中添加 -Dde.walware.rj.verbose=true。在常用选项卡中,单击Allocate additional Error Log Consoles。
主要配置选项如下。主选项卡,Launch Type: RJ。 R_Config 选项卡,您需要选择一个已配置的 R 安装,或者如果您没有可用的安装,则创建/编辑一个。我的是Name=R, Location=/usr/lib64/R 在环境选项卡中我有R_LIBS_USER=/home/USER/etc/R/amd64/2.11 根据我上面的设置方式。请勿在此处使用波浪号 (~) 字符!
如果你最终像我一样纠结于这个问题,你最终会杀死很多死机。在主选项卡中,我添加了程序选项--no-save。我不认为这有任何作用,因为我无法通过按 CTRL-D 来结束控制台。在 R_Console 选项卡中,我添加了以下 R sn -p:
q <- function(save = "no", status = 0, runLast = TRUE){
.Internal(quit(save, status, runLast))
#<environment: namespace:base>
}
这消除了在用红色方块杀死 R 控制台时烦人的“保存工作区”提示(这是象征性的吗?)我当前的工作区还包括一个 C 项目,所以我的 R 控制台经常出现在一个空白 C-构建控制台。烦死人了!还没有解决这个问题,但我确实发现在 StatET 代码窗口中,键绑定 CTRL-R C 将 R 控制台拉到顶部。
使用我的R 2.11 debug 配置,我得到一个名为/usr/lib/jvm/java-6-openjdk/bin/java 的额外控制台。您必须探索控制台下拉菜单才能找到它。以下是初始化成功的相关sn-p:
CONFIG: JR library path:
/home/allan/etc/R/amd64/2.11
/usr/local/lib64/R/site-library
/usr/lib64/R/library
10-Dec-2010 7:56:47 AM org.rosuda.rj.JRClassLoader addClassPath
FINE: Added '/home/allan/etc/R/amd64/2.11/rJava/java' to classpath of URL loader
更多的骗局,最后:
10-Dec-2010 7:56:48 AM de.walware.rj.server.jriImpl.RosudaJRIServer start
INFO: R engine started successfully. New Client-State: 'Connected'.
看起来不错,对吧?但你瞧,在 R 控制台中:
[INFO] The R package 'rj' is not available, R-StatET tools cannot be initialized.
忽略那个撒谎的混蛋!原来我的 rj 工作得很好。不知道为什么此失败消息仍然存在。
每次遇到这个问题时,我的运动鞋中都会出现一些令人惊叹的新砾石。
我不知道我是否已经涵盖了所有内容,但我现在已经写够了。也许如果有 cmets 我会回来填补空白。
注意:在这里找到了一个用于通过键盘切换控制台的 Eclipse 插件:Eclipse: Keyboard shortcut for switching between consoles?