• 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访问了。

  • 相关阅读:
    URL编码及解码
    Javascript解析URL
    为什么在JavaScript中0.1+0.2不等于0.3?
    void 0 与 undefined
    Windows7、Windows10下把Git Bash Here 添加到右键菜单(ContextMenu)
    [菜鸟]C++创建类对象时(无参)后不加括号与加括号的区别
    git常用命令
    git 出错及解决
    Vim升华之树形目录插件NERDTree安装图解
    rails.vim环境安装(ubuntu)
  • 原文地址:https://www.cnblogs.com/fuleying/p/3950943.html
Copyright © 2020-2023  润新知