标签: rjava

在centOS上安装rJava

我在centOS VM(cloudera cdh3u4)上安装rJava时遇到问题.

我先做了这个:sudo R CMD javareconf

[cloudera@localhost ~]$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.6.0_31
Java home path   : /usr/java/jdk1.6.0_31/jre
Java compiler    : /usr/bin/javac
Java headers gen.:
Java archive tool: /usr/bin/jar
Java library path: $(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

Updating Java configuration in /usr/lib64/R
Done.
Run Code Online (Sandbox Code Playgroud)

但是当我想安装rJava时,我明白了:

> install.packages( c('rJava'),
+ repos='http://cran.revolutionanalytics.com')

    ...
    configure: error: One or more Java configuration …
Run Code Online (Sandbox Code Playgroud)

r rjava

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

如何设置 R 的环境变量以在 RedHat Linux (RHEL6) 上的 Tomcat 中使用

我正在尝试在 RHEL6 (6.4) 上设置 R 和 Tomcat

我已经安装了R并且可以运行它。我已经安装了Tomcat 7并且可以托管文件file。我已将应用程序打包为 WAR 文件并使用 tomcat 进行部署。该应用程序在使用任何 R 组件之前在各个方面都运行良好。

这是它崩溃的地方,并出现以下错误,如 catalina.out 中所示:

Cannot find JRI native library!
Please make sure that the JRI native library is in a directory listed in java.li
brary.path.

java.lang.UnsatisfiedLinkError: /usr/local/lib64/R-2.15.3/library/rJava/jri/libj
ri.so: libR.so: cannot open shared object file: Too many levels of symbolic link
s
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:19)
Run Code Online (Sandbox Code Playgroud)

我确实在 R 下安装了 rJava: install.packages("rJava") 它安装得很好,并且我在 R 的库文件夹中安装了 rJava。

我在/etc/profile中定义了以下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre …
Run Code Online (Sandbox Code Playgroud)

linux redhat rhel jri rjava

5
推荐指数
1
解决办法
4427
查看次数

更新Java方法时,使用.jcall从R调用的Java方法未刷新

我正在尝试像这样从R调用特定的java方法,

library(rJava)
.jinit()
.jaddClassPath("E:\\JAVA learn\\check\\bin") # path to class file
.jclassPath()
obj1 <- .jnew("check") #to create an object
result <- .jcall(obj1, "I", "try")
result
Run Code Online (Sandbox Code Playgroud)

我的检查类中的try方法是这样的

public int try()
{
    return 30;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我更新try方法以返回50并重做上述步骤时,结果的值仍然仅为30,并且没有更新。

如果我关闭R并再次打开并运行它,其更新结果将为50。我希望它在不重新启动R的情况下更新结果值。请帮助!

r rjava

5
推荐指数
0
解决办法
150
查看次数

无法加载包“rJava”

我无法在 R 上使用 rjava 解决我的问题。

当我安装 rJava 包并需要它时,我没有任何问题。

install.packages("devtools")
install.packages("rJava")
library(rJava)
Sys.setenv(JAVA_HOME="C:/Program Files (x86)/Java/jre1.8.0_77")

devtools::install_github("kassambara/r2excel",INSTALL_opts="--no-multiarch")
Run Code Online (Sandbox Code Playgroud)

当我编译最后一行时,我遇到了这个问题:

* installing *source* package 'r2excel' ...
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)
  error: impossible de charger l'objet partagé 'C:/Users/itm/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  %1 …
Run Code Online (Sandbox Code Playgroud)

r rjava

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

R:如何设置 JDK 以使用 R(相关:rJava、RStudio、xslx)

我是编程和 R 的新手,但是,我正在尝试安装“xlsx”包(以及 XLConnect)以便通过 R 操作 Excel 文件。我正在运行 RStudio 版本 1.0.153,R 版本 3.4。 2 在 Mac OSX 10.12.6 上。

首先,我尝试通过 RStudio 安装包install.packages('xlsx')并使用library('xlsx'). 我收到此错误:

> library('xlsx')
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': 
dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
 Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
 Reason: image not found
Error: package ‘rJava’ could not be …
Run Code Online (Sandbox Code Playgroud)

java r rjava rstudio osx-elcapitan

5
推荐指数
1
解决办法
7117
查看次数

发现所有已安装的具有 Java 依赖项的 R 包(出于安全原因)

出于安全原因,我被迫在使用 R 的计算机上卸载 Java (JRE)。

我如何(轻松地:-)发现所有已安装的使用 Java 的软件包?

编辑 2021 年 12 月 14 日: log4j-log4shell-cve-2021-44228-漏洞使这个问题(和答案)变得更加有趣;-)

java installation r package rjava

5
推荐指数
1
解决办法
1129
查看次数

rJava 库作为本地包依赖关系很好,但不是来自 Git 存储库

我有一个使用“xlsx”作为依赖项的包,如果我从本地文件安装库,该包会很好地安装。library(packagename)工作正常,所以做library(xlsx)and library(rJava)。我们刚刚开始实施一些急需的版本控制的过程,但是,当尝试从 git 存储库安装相同的包时,我收到以下错误:

devtools::install_git(path)
Run Code Online (Sandbox Code Playgroud)

...

** building package indices
** testing if installed package can be loaded
*** arch - i386
Error: package or namespace load failed for 'xlsx':
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.
Error : package 'xlsx' could not be loaded
Error: loading failed
Execution halted
*** arch - …
Run Code Online (Sandbox Code Playgroud)

java git r rjava

5
推荐指数
0
解决办法
121
查看次数

如何将 rJava 标准捕获为 R 字符向量?

使用 rJava 进行调用时,有没有办法以 R 中的字符向量捕获 java 写入控制台/标准输出的输出?有没有办法做到这一点,而不将java的stdout重定向到文件并让R读取文件?

在我的特定用例中,我使用 RJDBC 连接到数据库,服务器将发回打印到控制台的有用信息。我想解析这些消息,提取一些信息,并采取相应的行动。

当我进行运行 java 代码的函数调用时,任何控制台输出都会转发到 RStudio 控制台,但capture.output似乎不起作用(我type = "output"也尝试过)

rJava::.jinit()

jText <- capture.output(
  rJava::J("java/lang/System")$out$println("Write this down"), 
  type = "message"
)

identical(jText, character(0))
#> [1] TRUE
Run Code Online (Sandbox Code Playgroud)

我可以通过将 java stdout 重定向到文件来做到这一点,但是有没有办法避免写入文件?例如,我可以这样提取 HAL 9000 正在与谁交谈:

rJava::.jinit()
jSys <- rJava::J("java/lang/System")

jOut <- tempfile(fileext = ".txt")
jOrigOut <- jSys$out
jPS <- rJava::.jnew("java/io/PrintStream", jOut)

jSys$setOut(jPS)
jSys$out$println("I'm sorry Dave. I'm afraid I can't do that")
jSys$setOut(jOrigOut)

msg <- readLines(jOut)
regmatches(msg, regexpr("(?<=I'm sorry ).*(?=\\.)", msg, perl …
Run Code Online (Sandbox Code Playgroud)

r rjava rjdbc

5
推荐指数
0
解决办法
123
查看次数

R 3.6 - 无法安装 rJava:usr/bin/ld:找不到 -lpcre2-8

我刚刚开始我的 R 冒险,所以每个问题都是值得挑战的。不幸的是,我已经将我的 R 更新到 3.6,我不得不重新下载每个包。这是我的问题 - 在安装 rJava 时,我的安装因以下错误而被取消:

usr/bin/ld: cannot find -lpcre2-8

我已经下载并安装了 pcre2 包,但它仍然不起作用。我正在使用 Ubuntu 18.04

r rjava

5
推荐指数
0
解决办法
1321
查看次数

在 MacOSX 上安装 `rJava` 失败并显示“JDK 不完整!...”

我正在尝试rJava在 Mac上安装,但收到以下错误消息:

[...]
checking whether javah was replaced by javac -h... no
configure: error: one or more Java tools are missing.

*** JDK is incomplete! Please make sure you have a complete JDK. JRE is *not* sufficient.
configure: error: ./configure failed for jri
ERROR: configuration failed for package ‘rJava’
* removing ‘/usr/local/lib/R/3.6/site-library/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status
Run Code Online (Sandbox Code Playgroud)

但是,我有javajavac所以我只是有一个 JRE:

$ java -version
openjdk version "1.8.0_242" …
Run Code Online (Sandbox Code Playgroud)

java r rjava

5
推荐指数
1
解决办法
268
查看次数

标签 统计

rjava ×10

r ×9

java ×4

git ×1

installation ×1

jri ×1

linux ×1

osx-elcapitan ×1

package ×1

redhat ×1

rhel ×1

rjdbc ×1

rstudio ×1