zoukankan      html  css  js  c++  java
  • rJava配置

    1. 下载安装R-3.1.1-win.exe;

    2. 在R中安装rJava

    > install.packages("rJava")

    3. 设置环境变量:

    1 PATH:D:SoftWareJavajdk1.6.0_45jreinserver;D:SoftWareJavaRR311inx64
    2 CLASSPATH:D:SoftWareJavaRR311library
    Javajri

    4. 在R中调用Java 测试:

    > library(rJava)
    > .jinit()
    > s <- .jnew("java/lang/String", "Hello World!")
    > s

    一切配置成功则出现:

    [1] "Java-Object{Hello World!}"
    #加载rJava包
    > library(rJava)
    > search()
     [1] ".GlobalEnv"        "package:rJava"     "package:stats"
     [4] "package:graphics"  "package:grDevices" "package:utils"
     [7] "package:datasets"  "package:methods"   "Autoloads"
    [10] "package:base"
    
    #启动JVM
    > .jinit()
    
    #声明并赋值到字符串
    > s <- .jnew("java/lang/String", "Hello World!")
    > s
    [1] "Java-Object{Hello World!}"
    
    #查看字符串长度
    > .jcall(s,"I","length")
    [1] 12
    
    #索引World的位置
    > .jcall(s,"I","indexOf","World")
    [1] 6
    
    #查看concat的方法声明
    > .jmethods(s,"concat")
    [1] "public java.lang.String java.lang.String.concat(java.lang.String)"
    
    #使用concat方法连接字符串
    > .jcall(s,"Ljava/lang/String;","concat",s)
    [1] "Hello World!Hello World!"
    
    #打印字符串对象
    > print(s)
    [1] "Java-Object{Hello World!}"
    
    #打印字符串值
    > .jstrVal(s)
    [1] "Hello World!"

    rJava优化过的方法调用,用$来调用方法

    #同.jcall(s,"I","length")
    > s$length()
    [1] 12
    
    #同.jcall(s,"I","indexOf","World")
    > s$indexOf("World")
    [1] 6

    5. 安装Rserve

    > install.packages("Rserve")

    需要使用时在R控制台下加载该包,然后输入命令Rserve(),开启服务器,就可以供客户端调用。

     6. ubuntu系统启动Rserve

    $ R CMD Rserve
    #查看进程
    $ ps -aux|grep Rserve
    conan     7142  0.0  1.2 116296 25240 ?        Ss   09:13   0:00 /usr/lib/R/bin/Rserve
    
    #查看端口
    $ netstat -nltp|grep Rserve
    tcp        0      0 127.0.0.1:6311          0.0.0.0:*               LISTEN      7142/Rserve

    这时Rserve已经启动,端口是6311。

    7. Java远程连接Rserve

    刚刚启动时,使用的本地模式,如果想运程连接需要增加参数 –RS-enable-remote

    #杀掉刚才的Rserve守护进程
    $ kill -9 7142
    
    #打开远程模式重新启动
    ~ R CMD Rserve --RS-enable-remote
    
    #查看端口
    $ netstat -nltp|grep Rserve
    tcp        0      0 0.0.0.0:6311            0.0.0.0:*               LISTEN      7173/Rserve

    0 0.0.0.0:6311,表示不限IP访问了。

  • 相关阅读:
    mysql---面试题2
    Mysql--存储过程
    MySql--锁机制
    MYsql事务
    IDEA创建新项目保存pom文件时,出现错误Cannot resolve org.openjfx:javafx.base:11.0.0-SNAPSHOP
    线程中的多线程、并行和并发、同步和异步、阻塞和非阻塞、线程安全
    Java里的Arrays.asList()返回的List不能使用add、remove方法?
    服务器可用的Socket
    MessageBox.Show
    NPOI 教程
  • 原文地址:https://www.cnblogs.com/fuleying/p/3950943.html
Copyright © 2011-2022 走看看