是否有人设法让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) 我已经安装了最新版本的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来解决这个问题.任何帮助将非常感激!
在我的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也得到了同样的错误. …
加载 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 文件夹或要设置路径的文件。
有没有人有使用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文件:
如果我尝试从命令行访问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) 我在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以外的任何内容进行写访问.
任何信息都将受到高度赞赏!
我试图用rJava在java类中调用一个方法几天,我还没弄清楚我做错了什么.也许这里有人会为我提供一些线索.
情况如下:
我加载库并初始化一个对象(这很好):
library(rJava)
.jinit('C:/javatemp/worker.jar')
jobject <- .jnew("worker.concrete")
Run Code Online (Sandbox Code Playgroud)我列出方法,我得到了很好的结果:
.jmethods(jobject)
> [1] "public java.util.List worker.concrete.lookup(java.lang.CharSequence)"
Run Code Online (Sandbox Code Playgroud)我正在准备输入结构,也可以正常工作:
word <- .jnew("java/lang/String", "a word")
input = .jcast(word, "java/lang/CharSequence", check = TRUE)
Run Code Online (Sandbox Code Playgroud)但是,当我尝试执行该方法时,我得到一个错误,这种方法不存在...
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)有谁知道如何调用这种方法?
我本周有时间与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)
任何想法将不胜感激!
有安装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)
所以看起来它已经安装但不会加载
我最近将 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”) 安装了所有软件包,但是这次并没有解决问题。
谁能帮我解决这个问题?任何解决方案如何进行?
r ×10
rjava ×10
java ×6
installation ×2
macos ×2
rstudio ×1
stanford-nlp ×1
windows ×1
windows-7 ×1
xlsx ×1