首屏导读 · 本教程配套付费专栏 大模型工程师修炼手记19.9 元AI 编程 / Agent 实战 本文同主题系统课程· AI时代程序员的自我提升49.9 元AI 时代成长方法论。单篇不过瘾订阅解锁全量源码、实战与答疑文末附资料包领取方式 ↓注1关于Rserve网上有很多资料可以参考详细情况可以参考博客下面的“参考资料”部分本文只是简单介绍一下Rserve主要目的是记录一下Java远程执行R脚本文件的方法。注2这里提到的远程执行R脚本文件的方式都是R脚本存在于Rserve服务端如果R脚本文件存在客户端可以使用RUtils工具包http://blog.csdn.net/zhyh1986/article/details/13065199Rserve介绍Rserve是一个基于TCP/IP协议的允许R语言与其他语言通信的C/S结构的程序支持C/C,Java,PHP,Python,Ruby,Nodejs等。 Rserve提供远程连接认证文件传输等功能。我们可以设计R做为后台服务处理统计建模数据分析绘图等的任务。 详细介绍请参照官方网站https://rforge.net/Rserve/Rserve安装Linux系统下建议使用root权限安装。下面的内容是依据Windows7系统中安装过程进行描述的。进入R语言解释器R安装命令install.packages(“Rserve”)然后安装程序会提示我们选择下载镜像提示如下— Please select a CRAN mirror for use in this session —等我们选择了镜像后测试时选择的是China(xxx)安装程序便进行下载安装最终会输出如下的信息Linux下的输出信息或有不同说明Rserve安装成功安装路径为%R_HOME%\library\Rserve目录。启动Rserve服务在Windows命令窗口进入R_HOME\library\Rserve\libs\i386目录中执行如下命令我的Windows7是32位的如果是64位系统对应目录为R_HOME\library\Rserve\libs\x64[plain] view plain copyR CMD RserveR将作出如下应答说明Rserve启动成功端口6311可以进行连接测试了。上面的启动命令使用的本地模式如果想远程连接需要增加参数 –RS-enable-remote即启动命令为[plain] view plain copyR CMD Rserve –RS-enable-remoteJava远程连接Rserve下载依赖jar包地址http://www.rforge.net/Rserve/files/共两个jar包下载完成后将它们加入到项目的classpath中即可 REngine.jar RserveEngine.jar也可以到Rserve安装目录中寻找比如R_HOME \library\Rserve\java目录中就有相关jar包名字略有不同经测试可以使用简单的测试代码[java] view plain copypackage com.zyh.up.general.rjava;import org.rosuda.REngine.REXPMismatchException;import org.rosuda.REngine.Rserve.RConnection;import org.rosuda.REngine.Rserve.RserveException;public class RserveBegin {public static void main(String[] args) {try {callRserve();} catch (RserveException e) {e.printStackTrace();} catch (REXPMismatchException e) {e.printStackTrace();}}static void callRserve() throws RserveException, REXPMismatchException { RConnection rConnection new RConnection(192.168.101.122); String rv rConnection.eval(R.version.string).asString(); System.out.println(rv); double [] arr rConnection.eval(rnorm(10)).asDoubles(); for(double d : arr) { System.out.println(d); } }}测试可以通过程序将输出R语言版本信息及10个Double类型的数字。Java远程执行R脚本上面的示例只是执行R命令但如果我们在服务器上放置R脚本又该如何执行该脚本或调用其中的函数呢有两种方法可以完成上面的问题。假如我们定义了一个R脚本area.R其中定义了一个方法area该方法接收一个半径值然后计算对应面积并返回脚本内容非常简单[plain] view plain copyarea-function(r){pi*r^2}下面描述一下如何调用这个脚本中的area函数并获取其返回值。第一种方法就是直接用source函数将area.R脚本加载上来然后就可以像调用R语言内置命令/函数一样调用脚本中的area方法了。这样做有一个缺点就是每建立一次Java与R之间的连接就需要调用source函数一次。示例代码[java] view plain copypackage com.zyh.up.general.rjava;import org.rosuda.REngine.REXP;import org.rosuda.REngine.REXPMismatchException;import org.rosuda.REngine.Rserve.RConnection;import org.rosuda.REngine.Rserve.RserveException;public class RserveBegin {public static void main(String[] args) {try {callRScript();} catch (Exception e) {e.printStackTrace();}}static void callRScript() throws RserveException, REXPMismatchException { RConnection rc new RConnection(192.168.101.122); // source函数需要给出R脚本路径, 注意传入转义的引号 rc.eval(source(\/home/hadoop/wangfeng/javaR/area.R\)); REXP rexp rc.eval(area(10)); System.out.println(Area of 10 is rexp.asDouble()); }}代码测试通过。另一种调用R脚本的方法是通过Rserv.conf配置文件该文件路径为/etc/Rserv.conf如果文件不存在则创建一个新的然后在文件中添加如下的代码[plain] view plain copysource /home/hadoop/wangfeng/javaR/area.R然后重新启动Rserve服务即可。使用这种方式Java测试代码需要去掉source语句这一行即[plain] view plain copyrc.eval(“source(\”/home/hadoop/wangfeng/javaR/area.R\”)”);其它不变经测试成功。注1第二种方式只在Linux下采用Win平台对应的方法没有找到。另外有些人说配置文件为Rserve.conf但我在122的/etc下找到的是Rserv.conf不管是哪一个文件甚至两者都不是随便命名一个只要执行下面命令告诉Rserve配置文件是哪一个即可需要重启Rserve[plain] view plain copyR CMD Rserve –RS-conf Rserv.conf参考资料https://rforge.net/Rserve/example.htmlhttp://blog.fens.me/r-rserve-java/http://www.studytrails.com/R/RServe/RServe-Source-R-File.jsphttp://stackoverflow.com/questions/13553397/sourcing-r-files-only-once-on-rservehrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-e1cc28b339.css relstylesheet hrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-d1e89cace4.css relstylesheet内容来源csdn.net作者昵称Tom·Ge原文链接https://blog.csdn.net/gedonshen/article/details/79070063作者主页https://blog.csdn.net/gedonshen标签#脚本 #java确定要放弃本次机会福利倒计时::立减 ¥普通VIP年卡可用立即使用延伸阅读 · 我的付费专栏觉得这篇文章对你有帮助我把同类主题的系统化内容沉淀成了付费专栏欢迎订阅支持持续输出专栏定价内容大模型工程师修炼手记19.9 元AI 编程 / Agent 深度实战AI时代程序员的自我提升49.9 元AI 时代成长方法论本文配套代码 / 资料包欢迎在评论区留言「求代码」我会私信发送完整资源
企业数字化 ERP 产品动态
相关推荐
Atlas 300V推理卡YOLO部署实战:从环境搭建到模型调优 第一次拿到 Atlas 300V 这张卡的时候,大部分人都会有个错觉:长着一张 PCIe 扩展卡的脸,插在服务器里,能跑模型,那它不就是显卡吗?还真不是。Atlas 300V 是昇腾的 AI 推理加速卡,里面是一颗 310P… · 2026/9/25 7:45:16
Google Benchmark Python 绑定:安装 wheel、源码构建与 Bazel 编译管线解析 性能测试 【免费下载链接】benchmark A microbenchmark support library 项目地址: https://gitcode.com/gh_mirrors/benchmark5/benchmark 点击查看 免费下载 本文围绕 Google Benchmark 官方文档 docs/python_bindings.md 展开,完整讲解其 Python 绑定… · 2026/9/25 7:45:16
Agentic Runtime 在 Kubernetes 上的调度与编排实践 1. 从"ax"这个标题说起:一个被低估的运行时调度命题第一次看到"ax"这个标题,很多人会以为是某个命令行工具的缩写,或者某个库的名字。但结合热搜词里的agentic、orchestration、runtime、Kubernetes这几个关键词… · 2026/9/25 7:45:16
谷歌把 TPU 送上了天:4 颗芯片、15 分钟,太空数据中心的第一次真刀真枪 💡 一句话总结:谷歌的太空 AI 算力计划 Project Suncatcher 从纸面论文走进了发射场——首颗原型卫星定档 10 月 1 日,但只带 4 颗 TPU、每次跑 15 分钟;愿景(81 星组网)与现状(一次 15 分钟的验… · 2026/9/25 8:54:22
影刀RPA实战:微信聊天记录自动导出Excel的完整方案 做运营的人应该都经历过这种场景:领导说“把上个月和A客户的所有聊天记录整理成表格”,你只能打开微信,一条条往上翻,复制粘贴到Excel里,再手工标记日期和联系人。聊天少还好,遇到一天几十条的群࿰… · 2026/9/25 8:54:10
Java变量深度解析:内存模型、作用域、常量与命名规范 变量大概是Java里第一个绕不开、又被大多数教程一句话带过的概念。我见过工作两三年的开发,能把集合框架、JVM调优聊得头头是道,但你问他int a 10;这一行到底发生了什么,他反而含糊其辞。变量看起来简单,简单到我们每天都在写&am… · 2026/9/25 8:53:51
业务开发视角的可观测体系建设:从日志、链路到告警的实战指南 那天晚上十一点半,业务群突然炸了:下单成功率掉了快一半,用户反馈进来一堆。我作为订单模块的业务开发,打开监控大盘一看,CPU 正常、内存正常、服务平均耗时也正常,整个系统看起来"健康"得不能再… · 2026/9/25 8:53:45
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37