我在做什么?

我正在用Java编写一个数据分析程序,该程序依赖R的arulesViz库来挖掘关联规则。

我想要什么?

我的目的是将规则存储在Java中的String变量中,以便以后进行处理。

它是如何工作的?

该代码分别使用String.format和eval Java和RJava指令组合工作,其行为概括为:

给定格式正确的Java数据结构,在R中创建一个数据帧。

使用arules库将最近创建的数据框格式化为事务列表。

使用事务列表和一些必要的值作为参数运行apriori算法。

重新排序生成的关联规则。

如果无法打印关联规则,则使用R的write方法将它们写入标准输出,捕获输出并将其存储在变量中。 我们已经将关联规则转换为字符串变量。

我们返回字符串。

代码如下:

// Step 1

Rutils.rengine.eval("dataFrame

//Step 2

Rutils.rengine.eval("transList

//Step 3

Rutils.rengine.eval(String.format("info

// Step 4

Rutils.rengine.eval("orderedRules

// Step 5

REXP res = Rutils.rengine.eval("rulesAsString

// Step 6

return res.asString().replaceAll("'", "");

怎么了?

在Linux上运行代码将可以完美地工作,但是当我尝试在Windows中运行它时,出现以下错误,该错误涉及return行:

Exception in thread "main" java.lang.NullPointerException

每当R代码生成空结果并将其传递给Java时,这都是我常见的错误。 无法在Java中对R代码进行语法检查,因此,每当输入错误时,都会出现此错误消息。

但是,当我在Windows中的R命令行中的括号中运行R代码时,它可以正常工作,因此语法和数据流都可以。

技术信息

在Linux中,我将R与OpenJDK 10一起使用。

在Windows中,我当前正在使用Oracle的最新JDK版本,但是尝试在Windows的OpenJDK 12中运行该程序不能解决任何问题。

一切都是64位。

两种操作系统中使用的IDE是IntelliJ IDEA 2019。

屏幕截图

Linux运行配置:

Windows运行配置:

linux java的启动内存溢出,java - Java的R代码可在Linux上运行,但不能在Windows中运行 - 堆栈内存溢出...相关推荐

  1. 在Windows中运行Linux bash命令的几种方法

    如果你正在课程中正在学习 shell 脚本,那么需要使用 Linux 命令来练习命令和脚本. 你的学校实验室可能安装了 Linux,但是你自己没有安装了 Linux 的笔记本电脑,而是像其他人一样的 ...

  2. windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法

    如果在windows中运行qt5构建的程序提示:无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法如下 1.用release构建项目 2.把缺少的dll文件,从C:\Qt\Qt5.0. ...

  3. java preparedstatement 关闭_java - 如果基础连接已关闭,为什么isClosed()方法对PreparedStatements不返回true? - 堆栈内存溢出...

    就像标题所说的那样,我想知道为什么准备好的语句.isClosed()方法在关闭基础流(使用JDBC)后将返回false. public void someTest() throws SQLExcept ...

  4. Java服务启动慢,JVM预热的问题,我在k8s上改进了

    来源 | http://mtw.so/6qevJi JVM 预热是一个非常头疼而又难解决的问题.本文讨论了在运行在 Kubernetes 集群中的 Java 服务如何解决 JVM 预热问题的一些方法和 ...

  5. flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)

    Frida Java Hook 详解(安卓9):代码及示例(上) 前言 1.1 FRIDA SCRIPT的"hello world" 1.1.1 "hello world ...

  6. mc是用java写的吗_都说MC的代码特别差劲,你觉得它在所有游戏中,能排第几?...

    原标题:都说MC的代码特别差劲,你觉得它在所有游戏中,能排第几? 虽然说我的世界这款游戏非常的好玩,销量世界第一,无论国内国外都非常的火热,但是大家都知道,一款游戏他的最原本的面貌是由一个又一个的代码 ...

  7. android捕获线程异常,android - 终结器引发的未捕获的异常:所有WebView方法必须在同一线程上调用。 (预期的Looper) - 堆栈内存溢出...

    我正在使用Admob SDK 18.1.1 并获得错误终结器抛出未捕获的异常 java.lang.RuntimeException: java.lang.Throwable: A WebView me ...

  8. 程序代码初学者_初学者:如何使用热键在Windows中启动任何程序

    程序代码初学者 Assigning shortcut keys to launch programs in Windows is probably one of the oldest geek tri ...

  9. 源服务器未能找到目标资源的表示或者不愿,java - 源服务器没有找到目标资源的当前表示,或者不愿意透露一个存在。 关于部署到 tomcat - 堆栈内存溢出...

    ===============>>#1 票数:12 我已经使用 Spring 和 Eclipse IDE 构建了一个应用程序. 当我从 Eclipse IDE 启动项目时,一切都很好,但是 ...

最新文章

  1. 从Oracle收购sunopsis看ETL和ELT产品的趋势
  2. linux time函数_Linux基础知识(三)
  3. 测试电梯的测试用例_测试开发工作者日记:2020.12.24
  4. zookeeper核心面试问题及解答
  5. 最佳黑色背景的Visual Studio 2005/2008配置-尤其适合开发人员使用
  6. 12.微服务设计 --- 总结
  7. 奇怪的比赛|2012年蓝桥杯B组题解析第四题-fishers
  8. 在阿里矢量库下载了字体图标在项目引入无法显示时
  9. TOPSIS法 —— python
  10. 2015阿里天池大数据竞赛-Solution
  11. 应用程序正常初始化(Oxc000007b)失败
  12. ping服务器地址显示TTL传输中过期,ping公网固定IP出现: TTL 传输中过期,怎么处理?...
  13. 3dMAX足球建模教程
  14. 单点登录、统一认证解决方案(一)
  15. 【RTX操作系统教程】第4章 RTX操作系统介绍
  16. 【设计模式学习笔记1】原型法
  17. 苹果11如何设置9宫格_iPhone 11怎么设置九宫格输入法?iPhone11九宫格输入法设置教程...
  18. 为什么我们要从MySQL迁移到TiDB?
  19. Rust程序设计语言-猜猜看游戏
  20. cpm、ecpm、ocpm

热门文章

  1. java数据段 静态区_linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】...
  2. HTML与CSS基础之伪元素(五)
  3. oracle体系三大文件,oracle 体系_第三章控制文件
  4. mysql模板标签数据库设计_MySQL数据库规范化设计
  5. Git commit your changes or stash them before you can merge
  6. koa2入门(3)mongoose 增删改查
  7. 使用nginx cache缓存网站数据实践
  8. \Grokking Algorithms\简介与作者采访
  9. Python 开发者在迁移到 Go(lang) 时需要知道哪些事?
  10. 阅读总结:如何在生产中成功运用Docker