Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法为Eclipse StatEt插件安装rj包_Java_R_Eclipse_Ubuntu_Statet - Fatal编程技术网

Java 无法为Eclipse StatEt插件安装rj包

Java 无法为Eclipse StatEt插件安装rj包,java,r,eclipse,ubuntu,statet,Java,R,Eclipse,Ubuntu,Statet,因为Ubuntu升级到18.04破坏了我的Eclipse配置,所以我重新安装了Eclipse(4.8.0版),并尝试在StateT3.6插件中再次使用R。正如建议的那样,我试图通过以下方式在R术语控制台中安装程序包rj-2.1 install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-2.1") 这就开始安装rj和rj.gd Installing packages into ‘/usr/local/lib/R

因为Ubuntu升级到18.04破坏了我的Eclipse配置,所以我重新安装了Eclipse(4.8.0版),并尝试在StateT3.6插件中再次使用R。正如建议的那样,我试图通过以下方式在R术语控制台中安装程序包
rj-2.1

install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-2.1")
这就开始安装
rj
rj.gd

Installing packages into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
但以错误消息结束:

Warning message:
In install.packages(c("rj", "rj.gd"), repos = "http://download.walware.de/rj-2.1") :
  installation of package ‘rj’ had non-zero exit status
checking Java support in R... configure: error: cannot determine complete java config
    JAVA_HOME: /usr/lib/jvm/default-java
    JAVA     : /usr/lib/jvm/default-java/bin/java
    JAVAC    : /usr/lib/jvm/default-java/bin/javac
    JAVAH    : 
    JAVA_CPPFLAGS: -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux
    JAVA_LIBS: -L/usr/lib/jvm/default-java/lib/server -ljvm
    JAR      : /usr/lib/jvm/default-java/bin/jar
R is not configured with full Java support. Please make sure
an JDK is installed and run
    R CMD javareconf
as root to add Java support to R.

If you don't have root privileges, run
    R CMD javareconf -e
to set all Java-related variables and then install the package.
ERROR: configuration failed for package ‘rj’
* removing ‘/usr/local/lib/R/site-library/rj’
* restoring previous ‘/usr/local/lib/R/site-library/rj’
仔细查看控制台输出会发现以下错误消息:

Warning message:
In install.packages(c("rj", "rj.gd"), repos = "http://download.walware.de/rj-2.1") :
  installation of package ‘rj’ had non-zero exit status
checking Java support in R... configure: error: cannot determine complete java config
    JAVA_HOME: /usr/lib/jvm/default-java
    JAVA     : /usr/lib/jvm/default-java/bin/java
    JAVAC    : /usr/lib/jvm/default-java/bin/javac
    JAVAH    : 
    JAVA_CPPFLAGS: -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux
    JAVA_LIBS: -L/usr/lib/jvm/default-java/lib/server -ljvm
    JAR      : /usr/lib/jvm/default-java/bin/jar
R is not configured with full Java support. Please make sure
an JDK is installed and run
    R CMD javareconf
as root to add Java support to R.

If you don't have root privileges, run
    R CMD javareconf -e
to set all Java-related variables and then install the package.
ERROR: configuration failed for package ‘rj’
* removing ‘/usr/local/lib/R/site-library/rj’
* restoring previous ‘/usr/local/lib/R/site-library/rj’
当我运行建议的命令时

sudo R CMD javareconf
在终端中,输出表明它按预期工作

Java interpreter : /usr/lib/jvm/default-java/bin/java
Java version     : 10.0.2
Java home path   : /usr/lib/jvm/default-java
Java compiler    : /usr/lib/jvm/default-java/bin/javac
Java headers gen.: 
Java archive tool: /usr/lib/jvm/default-java/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux     -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-AitvI6/r-base-3.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.o
g++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/default-java/lib/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/default-java
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /usr/lib/R
Done.
尽管如此,安装
rj-2.1
之后仍然会产生相同的错误消息。我查看了
/usr/local/lib/R/site library
rj.gd
已更新,但
rj
仍然是以前的版本。启动R控制台会产生错误消息

eclipse.buildId=4.8.0.I20180611-0500
java.version=10.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product

de.walware.statet.r.console.ui

Launching the R Console was cancelled, because it seems starting the R engine failed.
Please make sure that R package 'rj' (2.1 or compatible) is installed and that the R library paths are set correctly for the R environment configuration 
你知道如何安装
rj

注:这似乎是Java版本的问题。Ubuntu 18.04预装了以下版本:

openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.1, mixed mode)
更新:
在不知情的情况下,从
Rterm
控制台安装
rj
rj.gd
现在可以正常工作了。
/usr/local/lib/R/site library
中的文件确实已更新,并且
Rterm
控制台没有任何错误消息。
尽管如此,在创建和运行
RJ
控制台时,仍会显示相同的错误消息

Launching the R Console was cancelled, because it seems starting the R engine failed. 
Please make sure that R package 'rj' (2.1 or compatible) is installed and that the R library paths are set correctly for the R environment configuration 'Rstatet36'.
我还再次定义了
Preferences>Statet>R环境
运行配置
,但没有效果


更新:如果你对一个问题投了否决票,最好添加一条评论,说明你为什么这么做,这样问题就可以改进了。或删除。哦,好吧

这确实是一个错误的Java环境。如果您知道要做什么,安装不会花费很长时间,但要找出以下内容相当繁琐:

1) 在Ubuntu 18.04上安装openjdk 8,使用
sudo apt Install openjdk-8-jdk
。我认为简单地用
sudo update alternations--config Java
更改默认Java版本可能会有所帮助,但事实并非如此。所以不要这样做

2) 转到Eclipse>首选项>Java>已安装的JRE: 在这里选择添加并指定文件夹,在本例中为/usr/lib/jvm/java-8-optenjdk-amd64。单击“确定”

3) 转到运行>运行配置,双击
R控制台
打开新的运行配置。选择
RJ(默认)

4) 转到选项卡
JRE
并从
Alternate JRE


5) 给你的新配置起个好名字,点击
Apply
Run
,你的RJ控制台启动。至少在我的环境中是这样

Java9和Java10安装使用了与Java早期版本完全不同的布局。安装代码可能没有更新以处理此问题。在阅读线程和教程时,我想起了这一点。是否也可以安装Java8并在这个特定的StatEt插件中指向它?我担心的是,双安装Java会导致整个系统出现问题,就像我在同一台计算机上遇到的多个Python版本一样。多个Java版本应该不是问题。如果您不想编写Java10代码,我建议您使用Java8:与Java9和Java10相比,Java8具有长期支持(LTS),因此Java8的(安全性)更新要比Java10长。下一个带有LTS的Java版本将在9月推出Java 11。感谢您的评论,@howlger。我还没有安装Java,是Ubuntu18.04预装了OpenJDK10.0.2。奇怪的是,当Java8似乎是Ubuntu LTS发行版的更安全赌注时,他们为什么要这么做。我想,我在askubuntu上问过,如何另外安装和配置openjdk 8。