标签: rjava

如何让rJava 0.9-3在Oracle Java 1.7上运行OS X 10.7.4?

是否有人设法让rJava 0.9-3使用Oracle Java 1.7在OS X 10.7.4上工作?

R version 2.15.2 (2012-10-26) -- "Trick or Treat" Platform
x86_64-apple-darwin9.8.0/x86_64 (64-bit)

java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我已经使用install.packages函数和使用R 2.15.2的命令行安装来安装rJava.我没有得到任何错误.

$ R CMD INSTALL rJava
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *binary* package ‘rJava’ ...

* DONE (rJava)
$ 
Run Code Online (Sandbox Code Playgroud)

如果我使用Java首选项将1.7放在列表中,但保留1.6"on",则rJava始终启动1.6.

如果我使用Java Preferences先放1.7并关闭1.6,rJava会这样做:

> library(rJava)
> .jinit()
JavaVM: requested Java version ((null)) not available. Using Java at "" instead.
JavaVM: Failed to load …
Run Code Online (Sandbox Code Playgroud)

java macos r rjava

7
推荐指数
1
解决办法
8694
查看次数

在Win7上加载rJava包时出现问题

我已经安装了最新版本的R(2.15.2)和Java(7.11),并通过RStudio(0.97.310)我试图加载rJava包.它似乎正确安装,但当我打电话时,library(rJava)我收到以下错误:

 Error : .onLoad failed in loadNamespace() for 'rJava', details:
 call: stop("No CurrentVersion entry in '", key, "'! 
 Try re-installing Java and make sure R and Java have matching architectures.")
 error: object 'key' not found
 Error: package/namespace load failed for ‘rJava’
Run Code Online (Sandbox Code Playgroud)

rJava的文档引用了Java 1.5+,所以我想知道是否需要安装古老版本的Java来解决这个问题.任何帮助将非常感激!

r windows-7 rjava

7
推荐指数
1
解决办法
6934
查看次数

在macOS Mavericks 10.9.5上安装xlsx和rJava

在我的Mac上安装rjava是一个真正的噩梦.

我的设置:

MacOS 10.9.5
Java: 7u71 (64 bits dowloaded from Oracle site)
R: R version 3.1.1 (2014-07-10)
Run Code Online (Sandbox Code Playgroud)

首先,在命令行中我运行了

sudo R CMD javareconf
Run Code Online (Sandbox Code Playgroud)

然后,我在里面跑了R:

install.packages('rJava')
Run Code Online (Sandbox Code Playgroud)

编译结束时的错误是这样的:

JavaVM -F/opt/local/Library/Frameworks/R.framework/.. -framework R -llzma -lm -liconv -licuuc -licui18n
ld: library not found for -licuuc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’
* removing ‘/Users/costa/Library/R/3.1/library/rJava’
Run Code Online (Sandbox Code Playgroud)

我尝试了Java 8和Mac默认的java也得到了同样的错误. …

java macos r rjava

7
推荐指数
1
解决办法
8131
查看次数

将 rJava 加载到 R 时如何在 Windows 10 中设置 JAVA_HOME 和 PATH

加载 rJava 时,出现以下错误消息:

Error in get(Info[i, 1], envir = env) : lazy-load database 'C:/Users/dell_x/Documents/R/win-library/3.3/rJava/R/rJava.rdb' is corrupt
Run Code Online (Sandbox Code Playgroud)

我尝试通过执行以下所有操作将 JAVA_HOME 设置为 jre 目录:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java')
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_121')
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_121\\bin')
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_121\\bin\\server')
Run Code Online (Sandbox Code Playgroud)

然而,它们似乎都不起作用。在此之前,我使用的是 32 位版本的 Java,并尝试将其设置为 32 位版本(Program Files (x86))。32 位版本也无法运行。

这是我查询 PATH 时得到的结果:

> Sys.getenv("PATH")
[1] "C:\\Program Files\\R\\R-3.3.0\\bin\\x64;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\WIDCOMM\\Bluetooth Software\\;C:\\Program Files\\WIDCOMM\\Bluetooth Software\\syswow64;C:\\Program Files (x86)\\Common Files\\Roxio Shared\\DLLShared\\;C:\\Program Files (x86)\\Common Files\\Roxio Shared\\10.0\\DLLShared\\;C:\\Program Files (x86)\\Skype\\Phone\\;C:\\Program Files (x86)\\Calibre2\\;C:\\Program Files\\Git\\cmd;C:\\Users\\dell_x\\AppData\\Local\\Microsoft\\WindowsApps;"
Run Code Online (Sandbox Code Playgroud)

我安装了最新版本的 Java 32 位和 64 位。我想要的只是能够在 R 中使用 open rJava。我之前提到的所有路径都不起作用(将 Java 库加载到 R 时仍然出现错误)并且我找不到特定的 jre 文件夹或要设置路径的文件。

java windows r xlsx rjava

7
推荐指数
1
解决办法
2万
查看次数

使用rJava包中的R中的Stanford NLP库

有没有人有使用StanfordCoreNLP的经验(http://nlp.stanford.edu/software/corenlp.shtml通过r中的rJava?我现在一直在努力让它工作两天,并且认为我已经筋疲力尽了Google和之前关于StackOverflow的问题.

本质上我正在尝试使用R中的StanfordNLP库.我没有Java经验,但有其他语言的经验,所以要了解有关类和对象等的基础知识.

从我所看到的,随库提供的演示.java文件似乎表明,要使用Java中的类,您需要导入库然后创建一个新对象,类似于:

import java.io.*;
import java.util.*;

import edu.stanford.nlp.io.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.util.*;

    public class demo {

        etc.
        etc.

        StanfordCoreNLP pipeline = new StanfordCoreNLP();

        etc.
Run Code Online (Sandbox Code Playgroud)

从R内部,我试过调用一些标准的java函数; 这工作正常,这让我觉得这是我试图访问导致问题的斯坦福图书馆的方式.

我将斯坦福ZIP解压缩到h:\ stanfordcore,因此.jar文件都在此目录的根目录中.除了zip中包含的各种其他文件外,它还包含主要的.jar文件:

  • 乔达-time.jar
  • 斯坦福大学corenlp-1.3.4.jar
  • 斯坦福大学corenlp-1.3.4-javadoc.jar
  • 斯坦福大学corenlp-1.3.4-models.jar
  • 乔达时间 - 2.1 sources.jar
  • jollyday-0.4.7-sources.jar
  • 斯坦福大学corenlp-1.3.4-sources.jar
  • xom.jar
  • jollyday.jar

如果我尝试从命令行访问NLP工具,它可以正常工作.

在R中,我初始化了JVM并设置了classpath变量:

.jinit(classpath = " h:/stanfordcore", parameters = getOption("java.parameters"),silent = FALSE, force.init = TRUE)
Run Code Online (Sandbox Code Playgroud)

在此之后,如果我使用该命令

.jclassPath() 
Run Code Online (Sandbox Code Playgroud)

这表明已添加包含所需.jar文件的目录,并在R中提供此输出:

[1]"H:\ RProject-2.15.1\library\rJava\java""h:\ stanfordcore"

但是,当我尝试创建一个新对象(不确定这是否是正确的Java术语)时,我收到一个错误.

我试过用几十种不同的方式创建对象(虽然基本上是在黑暗中拍摄),但最有希望的(因为它似乎实际上找到了类):

pipeline <- .jnew(class="edu/stanford/nlp/pipeline/StanfordCoreNLP",check=TRUE,silent=FALSE) …
Run Code Online (Sandbox Code Playgroud)

java r stanford-nlp rjava

6
推荐指数
1
解决办法
3493
查看次数

install rJava - "configure:error:一个或多个JNI类型与相应的本机类型不同"

我在R3.0.1上安装rJava时遇到了这个问题:"configure:error:一个或多个JNI类型与相应的本机类型不同"

详细信息见下文.我搜索了类似的问题,但我的问题有点棘手,许多提议的解决方案要么无法工作,要么我无法尝试,因为我正在服务器上,我没有对系统库的写访问权.

操作系统:Linux 2.6.18-348.6.1.el5#1 SMP Tue 5月21日15:44:27 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux(通过输入"uname -a"给出的信息抱歉我不太明白这个信息)

R:R3.0.1,我下载了源代码,放入我的主目录,并从源代码构建了R.

rJava:我在安装过程中运行了'install.packages("rJava")':

=========================
检查R中的Java支持...现在:
解释器:'/ usr/bin /
java'archiver:'/ usr/bin/jar'
编译器:'/ usr/bin/javac'
标题准备:'/ usr/bin/javah'cpp
flags:' - I/usr/lib/jvm/java-1.7.0-openjdk-1.7. 0.9.x86_64/jre /../ include -
I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre /../ include/linux'java
libs:' - L/usr /lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre/lib/amd64/se
rver -ljvm'
检查是否可以编译JNI程序...是
检查JNI数据类型... configure:错误:一个或多个JNI类型与
相应的本机类型不同.您可能需要使用非标准编译器标志或
不同的编译器来解决此问题.
错误:包'rJava'
*删除'/home/me/R-3.0.1/library/rJava'的配置失败

==================================

由于我只能远程访问服务器,因此我无法对主目录/ home/me以外的任何内容进行写访问.

任何信息都将受到高度赞赏!

java java-native-interface r rjava

6
推荐指数
2
解决办法
9415
查看次数

rJava - .jcall调用问题:未找到签名的方法

我试图用rJava在java类中调用一个方法几天,我还没弄清楚我做错了什么.也许这里有人会为我提供一些线索.

情况如下:

  1. 我加载库并初始化一个对象(这很好):

    library(rJava)
    .jinit('C:/javatemp/worker.jar') 
    jobject <- .jnew("worker.concrete")
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我列出方法,我得到了很好的结果:

    .jmethods(jobject)
    >  [1] "public java.util.List worker.concrete.lookup(java.lang.CharSequence)"  
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我正在准备输入结构,也可以正常工作:

    word <- .jnew("java/lang/String", "a word")
    input = .jcast(word, "java/lang/CharSequence", check = TRUE)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 但是,当我尝试执行该方法时,我得到一个错误,这种方法不存在...

    out = .jcall(jobject,"Ljava/util/List","lookup",input)
    > Error in .jcall(jobject, "Ljava/util/List", "lookup", input) : 
    method lookup with signature (Ljava/lang/CharSequence;)Ljava/util/List not found
    
    Run Code Online (Sandbox Code Playgroud)

有谁知道如何调用这种方法?

r rjava

6
推荐指数
1
解决办法
1394
查看次数

另一个rJava库安装错误:rJava.rdb'已损坏

我本周有时间与java相关的软件包.我终于让我的RWeka工作了(见这里),但现在我遇到了rJava问题.

该软件包似乎加载正常,但是当我加载库时,我得到以下内容:

Error in get(method, envir = home) : 
lazy-load database '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rJava/R/rJava.rdb' is corrupt
In addition: Warning messages:
1: In .registerS3method(fin[i, 1], fin[i, 2], fin[i, 3], fin[i, 4],  :
restarting interrupted promise evaluation
2: In get(method, envir = home) :
restarting interrupted promise evaluation
3: In get(method, envir = home) : internal error -3 in R_decompress1
Error: package or namespace load failed for ‘rJava’
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激!

java r rjava

6
推荐指数
1
解决办法
8035
查看次数

在Mac El Capitan上安装和加载rJava时出现问题

有安装rJava的问题,在这里尝试了大多数故障排除步骤并且不起作用.

这是返回错误

Loading required package: rJava
Error: package or namespace load failed for 'rJava':
 .onLoad failed in loadNamespace() for 'rJava', details:
 call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object     '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/    rJava.so':
Run Code Online (Sandbox Code Playgroud)

我是R/Rstudio和Mac El Capitan的最新版本

我也试过这种方法1,但没有用

sudo R CMD javareconf
Run Code Online (Sandbox Code Playgroud)

然后,在R解释器中:

install.packages('rJava', type='source')
install.packages('xlsx', type='source')
Run Code Online (Sandbox Code Playgroud)

方法2

sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Run Code Online (Sandbox Code Playgroud)

返回错误ln:/usr/local/lib/libjvm.dylib:文件存在

方法3 install.packages("rJava",type ="binary")错误:tar:无法设置默认语言环境

处理默认的语言环境错误

system("defaults write org.R-project.R force.LANG en_US.UTF-8")
Run Code Online (Sandbox Code Playgroud)

在加载rJava时,仍然出现同样的错误:

image not found
Run Code Online (Sandbox Code Playgroud)

所以看起来它已经安装但不会加载

installation r rjava

6
推荐指数
2
解决办法
7510
查看次数

升级到 OSX Catalina 后,R/Rstudio 中的 rJava 加载失败

我最近将 OSX 从 Mojave 升级到 Catalina。升级后我无法在 Rstudio 中运行 JGR() 包,因为无法加载 rJava。我反复收到错误:

    Loading required package: rJava
    Error: package or namespace load failed for ‘rJava’:
    .onLoad failed in loadNamespace() for 'rJava', details:
      call: dyn.load(file, DLLpath = DLLpath, ...)
      error: unable to load shared object         '/Library/Frameworks/R.framework/Versions/3.6/Resources/library/rJava/libs/rJava.so':
      dlopen(/Library/Frameworks/R.framework/Versions/3.6/Resources/library/r        .Java/libs/rJava.so, 6): Library not loaded:         /Library/Java/JavaVirtualMachines/jdk-        11.0.1.jdk/Contents/Home/lib/server/libjvm.dylib
      Referenced from:         /Library/Frameworks/R.framework/Versions/3.6/Resources/library/rJava/li        .bs/rJava.so
      Reason: image not found
    Error: package ‘rJava’ could not be loaded
Run Code Online (Sandbox Code Playgroud)

上次我遇到这个问题时(在 OSX Mojave 中),我使用“install.packages(“data”, type =“binary”) 安装了所有软件包,但是这次并没有解决问题。

谁能帮我解决这个问题?任何解决方案如何进行?

installation r rjava rstudio macos-catalina

6
推荐指数
1
解决办法
1271
查看次数