标签: rjava

我从哪里开始使用rJava?

我不是Java程序员.我编写R和C++.我有一些我希望包含在R包中的java代码.该计划的基础是这样的:

  1. 从标准输入读取数据.
  2. 运行MCMC链.
  3. 输出到文件.

我想将它转换为R,我可以从R运行程序.我熟悉Rcpp包,并习惯了它的一些便利.从哪里开始使用rJava包来学习使用此代码.

具体来说,我有以下问题.

  1. 如何从R传输数据到java,例如数字向量,因子等.
  2. 如何运行类的方法?
  3. 如何在包中包含Java代码?

rJava文档不是很有帮助.有人有这方面的教程吗?

r rjava

11
推荐指数
1
解决办法
3994
查看次数

R-Project:xlsx包安装失败(由于java问题)

我试图安装xlsx软件包,遗憾的是,Java存在一个问题,我无法解决.

请在下面找到尝试安装xlsx包时产生的输出.

这是输出:


R version 3.1.1 (2014-07-10) -- "Sock it to Me"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or …
Run Code Online (Sandbox Code Playgroud)

java r xlsx rjava

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

如何让rJava在osx上使用更新版本的java?

我在rJava上关注本教程:http://cran.r-project.org/web/packages/helloJavaWorld/vignettes/helloJavaWorld.pdf

我已经制作了教程中指定的所有文件并安装了helloJavaWorld包,但是一旦我运行了helloJavaWorld()函数,就会抱怨:

> helloJavaWorld()
Error in .jnew("HelloJavaWorld") :
  java.lang.UnsupportedClassVersionError: HelloJavaWorld : Unsupported major.minor version 52.0
Run Code Online (Sandbox Code Playgroud)

所以我试着检查rJava正在使用的java版本:

.jinit()
jvm = .jnew("java.lang.System")
jvm.props = jvm$getProperties()$toString()
jvm.props <- strsplit(gsub("\\{(.*)}", "\\1", jvm.props), ", ")[[1]]
jvm.props

 [1] "java.runtime.name=Java(TM) SE Runtime Environment"
 [2] "sun.boot.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries"
 [3] "java.vm.version=20.65-b04-466.1"
 [4] "awt.nativeDoubleBuffering=true"
 [5] "gopherProxySet=false"
 [6] "mrj.build=11M4716"
 [7] "java.vm.vendor=Apple Inc."
 [8] "java.vendor.url=http://www.apple.com/"
 [9] "path.separator=:"
[10] "java.vm.name=Java HotSpot(TM) 64-Bit Server VM"
[11] "file.encoding.pkg=sun.io"
[12] "user.country=US"
[13] "sun.os.patch.level=unknown"
[14] "java.vm.specification.name=Java Virtual Machine Specification"
[15] "user.dir=/private/tmp"
[16] "java.runtime.version=1.6.0_65-b14-466.1-11M4716"
[17] "java.awt.graphicsenv=apple.awt.CGraphicsEnvironment"
[18] "java.endorsed.dirs=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed" …
Run Code Online (Sandbox Code Playgroud)

java r rjava

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

在Windows中需要rJava的问题

我使用的是64位机器,最新版本的R(3.1.2),最新的RStudio版本(0.98.1091)和最新的JAVA(版本8更新31).

我试图要求rJava(rJava_0.9-6),结果是以下错误:

require(xlsx)
Carregando pacotes exigidos: rJava
Error : .onLoad falhou em loadNamespace() para 'rJava', detalhes: 
chamada: fun(libname, pkgname)
erro: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.
Failed with error:  ‘package ‘rJava’ could not be loaded’
Run Code Online (Sandbox Code Playgroud)

我已经尝试重新安装Java而没有成功.

有谁知道我该如何解决这个问题?

windows r rjava

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

使用rJava来调用第三方Java jar的挫败感

我正在尝试使用R来挂钩GSRad项目中的Java代码.GSRad Java代码可以在线获得,并作为One-Jar项目jar(直到今天我还不熟悉One-Jar).我可以使用以下命令运行One-Jar文件(在从上面的链接解压缩文件之后):

 java -jar gsrad_sample.jar
Run Code Online (Sandbox Code Playgroud)

当我弹出gsrad_sample.jar文件时,我在/ lib /目录中看到一个名为clima_GSRAD-1.0.0.jar的jar,其中包含我想要与R挂钩的类文件.我已经拿出了我喜爱的jar和尝试以下,无济于事:

library(rJava)
.jinit()
.jaddClassPath( "/home/jal/Documents/DSSAT/gsrad/clima_GSRAD-1.0.0.jar" )
.jnew( "cra/clima/gsrad/GSRBristowCampbellStrategy" )
Run Code Online (Sandbox Code Playgroud)

关于我如何挂钩clima_GSRAD-1.0.0.jar中的类的任何提示?我很沮丧.

编辑

GSRad网站需要注册,这很烦人.其中包含了Java包的Doxygen文档以及单瓶瓶文件的完整的zip文件,请点击这里,如果你弹出打开有我想要挂钩类的罐子是这一个.

r rjava

10
推荐指数
1
解决办法
3951
查看次数

write.xlsx函数在使用文件名定义路径时会出错,但read.xlsx很好

write.xlsx2xlsxR包的功能有问题.例如,请参阅下面的代码.

main_path<-"~/mydir/"
read.xlsx2(paste0(main_path,"my_input_excel.xlsx"), sheetIndex=1)
a<-1
write.xlsx2(a, paste0(main_path,"my_output_excel.xlsx"), sheetName="Sheet1", col.names=TRUE, row.names=FALSE, append=FALSE)
Run Code Online (Sandbox Code Playgroud)

虽然read.xlsx2功能工作正常,write.xlsx2函数提供错误

错误.jnew("java/io/FileOutputStream", jFile):
java.io.FileNotFoundException:/mydir/my_output_excel.xlsx(没有这样的文件或目录)

当我删除paste0部件并只写文件名时,一切都很好.所以问题是定义路径.

ps我想知道,也许write.xlsx忽略了波浪号,~所以路径定义变成了垃圾.

r rjava r-xlsx

10
推荐指数
1
解决办法
6083
查看次数

ls中的错误(envir = envir,all.names = private):R中的'envir'参数无效

当我在R中使用包来加载数据时遇到了这个错误,在这个包rJava中使用了pakcage .

每次运行函数时,错误都是

Error in ls(envir = envir, all.names = private) : 
  invalid 'envir' argument
Run Code Online (Sandbox Code Playgroud)

这个包已被证明没有任何问题,只是我的电脑中的一些环境问题.

当我调试时,我发现在ls(envir=envir?all.names = private ) 变量之前的最后一个进程 envirNULL,我认为应该是一些值但不是NULL.

经过一些试验,我通过rJava每次安装来解决问题.另外,只有当错误出现时,我才会安装'rJava',它会起作用.如果我在第一次安装,它将无法正常工作.所以,我想,安装'rJava'(或者可能正在安装包)会导致一些环境变量发生变化.

Java 7和Java 8(包括jdk或jre)都经过测试,不起作用.对于R,我使用3.1.3 R并且所有包都是最新的.

以下是我认为可能对故障排除有用的一些信息.

通过安装包,jvm.dll needs to be added to the windows environment path: "Path"我做到了.

我的sessionInfo如下所示:

R version 3.1.3 (2015-03-09)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=Danish_Denmark.1252  LC_CTYPE=Danish_Denmark.1252    LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C                   
[5] LC_TIME=Danish_Denmark.1252    

attached base packages:
[1] grid …
Run Code Online (Sandbox Code Playgroud)

java r environment-variables rjava

9
推荐指数
1
解决办法
1561
查看次数

错误:'rJava'的包或命名空间加载失败

所以我尝试了之前提出的问题答案.但我仍然有相同的错误消息:我正在尝试rJava在R中加载库

library(rJava) 

Error : .onLoad failed in loadNamespace() for 'rJava', details:   call: inDL(x, as.logical(local), as.logical(now), ...)   
error: unable to load shared object 'C:/Users/Lauriane/Documents/R/win-library/3.3/rJava/libs/x64/rJava.dll':   
LoadLibrary failure:  The specified module could not be found.  
Error: package or namespace load failed for ‘rJava’
Run Code Online (Sandbox Code Playgroud)

请帮忙,

谢谢

r rjava

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

MacOS Sierra 10.12.15上的rJava:不支持的选项fopenmp

我正在尝试在MacOS Sierra上安装rJava.必须尝试其他其他版本MacOS的提示和指南,如https://github.com/snowflakedb/dplyr-snowflakedb/wiki/Configuring-R-rJava-RJDBC-on-Mac-OS-X安装xlsx和在Mac上的rJava

但它没有成功.非常感谢任何帮助.谢谢.

我的Mac版:macOS Sierra,版本10.12.15我的R版本:3.4.0(2017-04-21)我的Rstudio版本:版本0.99.903

Java版本:

bash-3.2$ /usr/libexec/java_home -V
bash-3.2$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)


bash-3.2$ R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.8.0_131
Java home path   : /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Non-system Java on macOS

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/../include …
Run Code Online (Sandbox Code Playgroud)

macos installation rjava macos-sierra

8
推荐指数
1
解决办法
4061
查看次数

在 R 3.6 上为 ubuntu 仿生海狸安装 rJava 时出现“无法运行简单的 JNI 程序”错误消息

我有一个非常常见的问题,即 rJava 无法在 Ubuntu 上正确安装。此问题已在此处此处此处等多个地方讨论过。

基本问题是,在安装rJava包时,产生以下错误信息

configure: error: Unable to run a simple JNI program. Make sure you have configured R with Java support (see R documentation) and check config.log for failure reason.
Warning in system(cmd) : error in running command
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/jonno/R/x86_64-pc-linux-gnu-library/3.6/rJava’
Run Code Online (Sandbox Code Playgroud)

这个问题有各种密切相关的解决方案。它们中的大多数sudo R CMD javareconf用于为 R 配置 Java(也是一个-e变体)。有些人建议JAVA_HOME在环境变量中设置路径(其他人说不要)。其他人建议卸载并重新安装 R,而其他人建议从 …

java ubuntu r rjava ubuntu-18.04

8
推荐指数
1
解决办法
2858
查看次数