标签: jri

在eclipse中使用额外的本机代码库导出到Runnable jar

我无法将我的java项目从eclipse导出为jar可执行文件.我的java项目使用外部库(称为jri).我已经导出了jri.jar文件并在eclipse中为其本机库设置了库路径,并且它在eclipse中的开发中运行良好.但是,当我将其导出为可执行jar文件时,我收到以下错误:

Cannot find JRI native library!
Please make sure that the JRI native library is in a directory listed in java.library.path.
Run Code Online (Sandbox Code Playgroud)

我把一个名为lib的文件夹放在与我的项目jar相同的目录中; 这个lib文件夹包含jri的本机库.jri的本机库不在一个文件中,而是在一个文件夹中.这与我在eclipse中的设置相同.

我在eclipse中导出项目的方式是

Export...
Java > Runnable JAR file
Copy required libraries into a sub folder next to the generated Jar
Finish
Run Code Online (Sandbox Code Playgroud)

我的文件夹是这样组织的

folder project
  project.jar
  project_lib
    jri.jar
    jri native library folder  
Run Code Online (Sandbox Code Playgroud)

我的project.jar的MANIFEST.MF是:

Manifest-Version: 1.0
Class-Path: . project_lib/jri.jar
Main-Class: index
Run Code Online (Sandbox Code Playgroud)

我想要实现的是给另一个人一个文件夹,包括project.jar和其他任何需要的东西,这样她/他就可以运行它而无需安装任何其他东西.非常感谢

java eclipse jar jri java.library.path

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

在R中,如何绘制内存缓冲区而不是文件?

我正在使用JRI从Java生成ggplot2图.目前我必须将图表写入磁盘.如何在不经过文件的情况下完成此操作,即只在内存中渲染图形?

我尝试使用Cairo包绘制到一个textConnection,但是如果没有"R Connections Patch",这在谷歌搜索结果是古老的历史之后就不行了.

plot r jri

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

Java-R桥"JRI"错误:R已经初始化

我正在使用JRI作为Java内部统计数据的计算从属.R计算是不时需要的,但不是太频繁.因此,我决定为计算创建一个包装器方法,该方法创建一个新的REngine实例,并在结束时关闭它.第一次调用方法时,一切都像魅力一样.不幸的是,再次调用它会触发错误"R已经初始化".

初始化:

private static Rengine createEngineInstance(){

        //Initialise R Engine. 
        Rengine re=new Rengine (new String [] {"--vanilla"}, false, new CallbackListener());

        //Wait until REngine-thread is ready
        if (!re.waitForR())
        {
            System.err.println ("Cannot load R. Is the environment variable R_HOME set correctly?");
            System.exit(1);
        }
        return re;
}
Run Code Online (Sandbox Code Playgroud)

包装方法:

public static void performR(){

    //Create instance of R engine
    Rengine re = createEngineInstance();

    //Perform some R operations
    re.eval("...");

    re.end();

}
Run Code Online (Sandbox Code Playgroud)

显然,REngine实例未正确终止.因此,我需要知道:1)是否有机会终止REngine并再次创建新实例?这是如何正常工作的?我知道用JRI同时运行多个R线程是不可能的,但这不是我的目标.2)如果不是这种情况,我会使用Singleton模式创建一个实例.在这种情况下,如何确保在程序终止时R会话关闭?

非常感谢您的帮助!谢谢!

java singleton r jri

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

尝试加载JRI时找不到依赖库

我有这段简单的代码试图加载JRI模块.

 public static void main(String... args) {
    System.out.println(System.getProperty("java.library.path").toString());
    System.setProperty("jri.ignore.ule", "yes");
    System.loadLibrary("jri");
}
Run Code Online (Sandbox Code Playgroud)

我将java.library.path作为VM参数传递,但JRI无法加载以下错误:

C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri;C:\Users\Abhishek\Documents\R\win-library\3.1\rJava
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri\jri.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at pack.TestJRI.main(TestJRI.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

r jri

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

如何在Netbeans 8.0.2中设置环境变量?

我正在运行我的JRI(Java-R接口)包附带的测试类.我正在通过NetBeans运行它.不幸的是,NetBeans抱怨没有设置R_HOME.

Creating Rengine (with arguments)
Rengine created, waiting for R
R_HOME is not set. Please set all required environment variables before running this program.
Cannot load R
Unable to start R
Run Code Online (Sandbox Code Playgroud)

如何在NetBeans中添加R_HOME环境变量?


我尝试过的:

  1. 我在.bash_profile和.bashrc中定义了R_HOME. /Library/Frameworks/R.framework/Resources
  2. 右键单击我的项目名称>属性>运行...但是我看到无处可添加环境变量.我只看到"参数"和"VM选项".

我只是一些解决方案(过去半小时).

  1. export R_HOME=/path/to/r_home/在netbeans.conf中添加该行.
  2. 从已设置R_HOME的终端调用NetBeans.

但是,仍然可以使用GUI解决方案.

java netbeans r jri

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

如何使用R,Java和JRI绘制图形?

我是R的新手,所以请原谅我这是一个非常基本的问题.

我写了一个R脚本,它做了一些计算,并在最后绘制了Box Plot.如果我从R控制台运行此脚本,它运行正常并绘制图形.

如果我从Java程序(JRI站点上给出的示例rtest.java程序)运行脚本,则计算结果很好.但绘制图表存在一些问题.框架窗口打开并保持忙碌并挂起.(如果我尝试单击窗口,则显示"无响应".)我正在使用JRI.

这就是我在脚本中绘制图形的方式:

boxplot(mat);
Run Code Online (Sandbox Code Playgroud)

以上命令在R控制台上正常工作.

我很确定这是关于某些导入/包或类似的设置.但无法弄清楚到底是什么.

谁能帮我这个?

谢谢.

编辑1: 我的盒子绘图命令的输出:

在此输入图像描述

在John提供的链接上输出此代码:

在此输入图像描述

java plot r jri

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

如何将R脚本加载到JRI并从Java执行?

我正在使用JRI从Java执行R,我看到JRI使用该eval()方法执行R命令.我有一个R脚本可供执行.

如何在JRI中加载此脚本并执行它?

java command r jri

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

如何设置 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 R接口(JRI)安装程序

我正在尝试设置Java/R接口(捆绑在R"rJava"包中),但我遇到了一些麻烦(尽管在这里和其他论坛上尝试了很多建议).

我正在运行Windows 7,jdk1.7.0_05,Eclipse,R 2.15.2.这些都是64位安装.

我试图让示例运行的步骤如下:

  1. 在R GUI中安装rJava:install.packages('rJava') - 安装到C:\ Users\USERNAME\Documents\R\win-library\2.15\rJava \
  2. 设置环境变量:R_HOME ="C:\ Program Files\R\R-2.15.2",添加到PATH ="C:\ Program Files\Java\jdk1.7.0_05\bin";"C:\ Program Files\Java\jdk1.7.0_05\jre\bin\server";"C:\ Program Files\R\R-2.15.2\bin\x64";"C:\ Users\USERNAME\Documents\R\win-library\2.15\rJava\JRI\64"
  3. 在Eclipse中设置示例项目,设置VM参数:-Djava.library.path ="C:\ Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64"
  4. 重启R并使用命令加载rJava:libraries('rJava')
  5. 运行示例程序,获取以下异常:

找不到JRI原生图书馆!请确保JRI本机库位于java.library.path中列出的目录中.

java.lang.UnsatisfiedLinkError: C:\Users\USERNAME\Documents\R\win-library\2.15\rJava\jri\x64\jri.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(Unknown Source)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:19)
    at test.JRITest.main(JRITest.java:64)
Run Code Online (Sandbox Code Playgroud)

我已验证"java.library.path"是否按预期设置,因为:System.out.println("JLP ="+ System.getProperty("java.library.path")); 输出正确的路径.

我认为rJava可能没有完全安装(尝试重新安装),但我不知道如何检查这个."...\rJava\jri"或其任何子目录中唯一的JAR是"JRI.jar",而examples目录似乎不完整.

有没有人对这里可能出错的地方有什么建议?

似乎JRI网站(http://www.rforge.net/JRI/index.html)今天已经关闭,不确定是否有人知道下载的其他来源(除了直接来自CRAN).

谢谢.

java r interface jri

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

人人 - 如何使用java中生成的值

我正在使用renjin,我正在尝试使用我在java代码中使用r代码生成的值,例如:

int x = 7;

try
{
   engine.eval("tmp<-c(x, 4)");
   engine.eval("print(tmp)");
}
catch (ScriptException ex) 
{
   ;
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为引擎显然无法使用x.有没有简单的方法来解决这个问题?

java r jri renjin

4
推荐指数
1
解决办法
1275
查看次数

标签 统计

jri ×10

r ×8

java ×7

plot ×2

command ×1

eclipse ×1

interface ×1

jar ×1

java.library.path ×1

linux ×1

netbeans ×1

redhat ×1

renjin ×1

rhel ×1

rjava ×1

singleton ×1