Tag: rjava

无法在R中初始化CoreNLP

我无法在运行High Sierra的Mac上访问R中的coreNLP 。 我不确定问题是什么,但似乎每次我再次尝试使coreNLP工作时,我都面临着一个不同的错误。 我有JDK 9.0.4。 请参阅下面的代码,了解我正在尝试做什么,以及阻止我的错误。 我以前的尝试我能够让initCoreNLP()运行并加载包的一些元素,但是在其他元素上会失败。 当我然后尝试运行annotateString() ,它会抛出错误Error Must initialize with ‘int CoreNLP’! 。 我已经多次下载并重新下载了coreNLP Java存档,但仍然没有运气! 有关位于/Library/Frameworks/R.framework/Versions/3.4/Resources/library/coreNLP coreNLP R包文件夹的内容,请参阅图像。 你知道我怎样才能成功初始化coreNLP吗? dyn.load(“/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/lib/server/libjvm.dylib”) library(NLP) library(coreNLP) > downloadCoreNLP() trying URL ‘http://nlp.stanford.edu/software//stanford-corenlp-full-2015-12-09.zip’ Content type ‘application/zip’ length 403157240 bytes (384.5 MB) ================================================== downloaded 384.5 MB > initCoreNLP() [main] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP – Searching for resource: StanfordCoreNLP.properties Error in rJava::.jnew(“edu.stanford.nlp.pipeline.StanfordCoreNLP”, […]

Java / R接口(JRI)

我想在已安装R的Linux机器上从Java中调用一些R代码,因此需要Java / R接口(JRI)。 但是,我不知道该如何解决这个问题。 JRI主页说该软件包捆绑在rJava中 。 所以,我从rJava Files部分下载了rJava-0.9.3.tar.gz ,然后将其解压缩,获得(除其他外) src / java文件夹中的许多Java源文件(及其相应的类),以及2 inst / jri文件夹中的JAR(JRIEngine.jar和REngine.jar)。 但是,除了上述2个JAR之外, JRI文件部分还包括JRI.jar,并且所有这三个库都比inst / jri中的2个更新 。 此外,这3个JAR中没有一个包含src / java中找到的类的二进制文件,这似乎是在Java中调用R所必需的。 在java / src文件夹中运行“make all”似乎只是执行一些测试而没有生成JAR。 我希望所有必需的类都捆绑在JAR文件中,以便可以在类路径和IDE项目中轻松添加它们(例如,在Eclipse中)。 我怎么能达到这一点?

rJava没有在R中加载

所以我尝试了我在网上找到的所有东西,但没有运气。 我正在尝试使用需要rJava的qdab库。 所以我安装rJava,尝试运行库(“rJava”)并获取 > library(“rJava”) Error : .onLoad failed in loadNamespace() for ‘rJava’, details: call: fun(libname, pkgname) error: JAVA_HOME cannot be determined from the Registry Error: package or namespace load failed for ‘rJava’ 然后我尝试通过Sys.setenv手动添加路径,这就是发生的事情: > Sys.setenv(JAVA_HOME=”C:\\Program Files (x86)\\Java\\jre1.8.0_31″) > library(“rJava”) Error : .onLoad failed in loadNamespace() for ‘rJava’, details: call: inDL(x, as.logical(local), as.logical(now), …) error: […]

加载R在Java / JRI代码中创建库的问题

我创建了自己的新R库(称为“媒体”)。 当我尝试使用RGui加载它时没有问题,我可以调用新包中定义的函数。 这是我加载它的方式: > library(Media) 但是,我也试图从Java / JRI代码调用这些函数,当我加载新的R包时,Java似乎没有找到pacakge,抛出消息“库中的错误(媒体):对象’媒体’ 未找到” 这是我使用JRI的当前代码: REXP rexpSetFolder = re.eval(“setwd(‘C:/Users/Albert/Documents’)”); REXP rexpFolder = re.eval(“getwd()”); System.out.println(rexpFolder.asString()); REXP rexpLoad = re.eval(“library(Media)”); // fails 没有’setwd’命令也会失败,对现有R函数的简单调用工作正常。 我在Windows下使用R 2.10和最新的JRI 0.5-0。 任何帮助,将不胜感激。 非常感谢你。 编辑: 参数lib.loc似乎有效,至少这句话不会返回错误: library(“Media”, lib.loc = “c:/Users/Albert/Documents”) 但之后,使用re.eval(“myfunction()”);调用包中的函数re.eval(“myfunction()”); 仍然失败,因为没有正确找到该function。

R CMD javareconf找不到jni.h

我正在尝试在基于debian(jessie)和Anaconda的docker容器中安装rJava。 作为根,我做到了 $ apt-get update && apt-get install -y –no-install-recommends \ default-jdk default-jre libicu-dev 然后 $ R CMD javareconf Java interpreter : /usr/lib/jvm/jdk1.8.0_121/jre/bin/java Java version : 1.8.0_121 Java home path : /usr/lib/jvm/jdk1.8.0_121 Java compiler : /usr/lib/jvm/jdk1.8.0_121/bin/javac Java headers gen.: /usr/lib/jvm/jdk1.8.0_121/bin/javah Java archive tool: /usr/lib/jvm/jdk1.8.0_121/bin/jar trying to compile and link a JNI program detected JNI cpp […]

在macOS Sierra 10.12.1上安装rJava:链接器错误licuuc

我试图在R-Studio中安装rJava但错误 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/iMacLinda/Library/R/3.3/library/rJava’ Warning in install.packages : installation of package ‘rJava’ had non-zero […]

创建R包时包含jar文件

我创建了一个骨架R包: lib jarFileHere.jar R r_code_file.R r_code_file.R尝试引用jarFileHere.jar中的类文件: library(“rJava”) library(“rjson”) .onLoad <- function(libname, pkgname) { .jpackage(pkgname, lib.loc=libname) } .onLoad("packagename", "../lib/jarFileHere.jar") .jnew("com/test/ClassHere", "") 但是由于java.lang.NoClassDefFoundError我失败了。 我能够使用它 .jinit .jaddClassPath(“../lib/jarFileHere.jar”) 但rJava文档明确表示不使用.jinit,因为当代码用作包时它不起作用。

卸载rJava和/或重新启动JVM

我想将rJava与mcparallel结合使用,但显然JVM不能分叉 。 因此,需要为每个子进程启动单独的JVM实例,例如: library(rJava) library(parallel) myfile <- system.file("tests", "test_import.xlsx", package = "xlsx") #This works: mccollect(mcparallel({ #Automatically initiates JVM in child xlsx::read.xlsx(myfile, 1) })) 但是我的问题是JVM已经在(主)父进程中启动了。 这使得在子进程中无法使用rJava : #init JVM in parent .jinit() #Doesn’t work anymore mccollect(mcparallel({ xlsx::read.xlsx(myfile, 1) })) 所以我真正需要的是在子进程中关闭/终止和重启JVM的方法。 简单地detach(“package:rJava”, unload = TRUE)似乎没有做到这一点。 force.init参数似乎也没有导致重启: #Also doesn’t work: .jinit() mccollect(mcparallel({ .jinit(force.init = TRUE) xlsx::read.xlsx(myfile, 1) })) […]

使用rJava在R中调用java方法

我使用rJava从R调用java代码,尝试从SPMF工具调用算法。 我试图在这个问题中使用包装器函数,但这不适用于SPMF代码。 这是我的R代码: library(rJava) .jinit() .jaddClassPath ( “C:/mydrive/eclipse-workspace/myfile/src”) print(.jclassPath()) obj <- .jnew("AlgoFPGrowth_Strings") s <- .jcall(obj, returnSig= "V", method="runAlgorithm", "input.csv","output.txt") , 0.4 ) 它给了我错误,没有找到签名(D)V的方法runAlgorithm 这是java中的主要内容: public static void main(String[] args) throws Exception { AlgoFPGrowth_Strings fpwindow=new AlgoFPGrowth_Strings(); String input=”input.csv”; String output=”output.txt”; double minsupp = 0.4; fpwindow.runAlgorithm( input, output, minsupp); fpwindow.printStats(); } 我试图将returnSig值更改为S和Ljava / lang / String; 但我得到了同样的错误,找不到方法 […]

在Windows上设置Java R接口(JRI)

我已经关注了网络上的指南并查看了有关stackoverflow的问题,但我仍然无法在Windows上设置JRI。 以下是我采取的步骤: 1)安装R. 2)在R中执行install.packages(“rJava”)以安装rJava 3)创建一个值为C:\Program Files\R\R-3.1.2的R_HOME系统变量 4)将以下内容添加到我的PATH变量: C:\Program Files\R\R-3.1.2\bin\x64;C:\Users\USERNAME\Documents\R\win-library\3.1\rJava\jri\x64 5)在IntelliJ中添加了JRI.jar(位于C:\Users\USERNAME\Documents\R\win-library\3.1\rJava\jri )作为依赖项 6)将IntelliJ中的VM选项设置为-Djava.library.path=C:\Users\USERNAME\Documents\R\win-library\3.1\rJava\jri\x64 7)启动R并执行library(“rJava”) 8)运行我的程序来测试是否所有设置 收到以下错误: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006c726096, pid=5860, tid=6932 # # JRE version: Java(TM) SE Runtime Environment (8.0_31-b13) (build 1.8.0_31-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM […]