卸载 rJava 和/或重新启动 JVM

2024-01-02

我想用rJava结合mcparallel但显然JVM 无法被 fork https://stat.ethz.ch/pipermail/r-devel/2013-November/067960.html。因此,需要为每个子进程启动一个单独的 JVM 实例,例如:

library(rJava)
library(parallel)
myfile <-  system.file("tests", "test_import.xlsx", package = "xlsx")

#This works:
mccollect(mcparallel({
  #Automatically initiates JVM in child
  xlsx::read.xlsx(myfile, 1)
}))

然而,在我的例子中,问题是 JVM 也已经在(主)父进程中启动了。这使得无法使用rJava在子进程中:

#init JVM in parent
.jinit()

#Doesn't work anymore
mccollect(mcparallel({
  xlsx::read.xlsx(myfile, 1)
}))

所以我真正需要的是一种在子进程中关闭/终止并重新启动 JVM 的方法。简单地detach("package:rJava", unload = TRUE)似乎没有做到这一点。这force.init参数似乎也不会导致重新启动:

#Also doesn't work:
.jinit()
mccollect(mcparallel({
  .jinit(force.init = TRUE)
  xlsx::read.xlsx(myfile, 1)
}))

有什么方法可以强制关闭/终止 JVM 以便在子进程中重新启动它吗?


有一种方法可以使用 rJava 并行运行表达式,该方法基于运行并行进程来获取和组装所有结果BEFORE您在主进程中加载​​ rJava 库。由于主 R 进程尚未启动 jvm,因此 java 在每个子进程中启动,并且该特定实例也将与子进程一起死亡。

# Rsession started
library(parallel)
myfile <-  system.file("tests", "test_import.xlsx", package = "xlsx")
e <- expression({
require(rJava)
require(xlsx)
read.xlsx(myfile, 1)
})
p <- mcparallel(e)
q <- mcparallel(e)
pq <- mccollect(list(p, q))

# again to check reproducibility
p <- mcparallel(e)
q <- mcparallel(e)
pq2 <- mccollect(list(p, q))
identical(unname(pq),unname(pq2))

# see the result if it is the right content and not tryerr
pq

# now the main continues ...
# and if necessary even load rJava
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卸载 rJava 和/或重新启动 JVM 的相关文章

  • 查询 MongoDB 集合中的字段。

    我正在尝试查询 mongodb 集合中的特定字段 这是我的代码和输出 Mongo m new Mongo DB db m getDB mydb DBCollection coll db getCollection student addin
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • 我需要在 JFileChooser(打开模式)中显示不带扩展名的文件名。如何?

    我在打开模式下使用 JFileChooser 我需要显示不带扩展名的 文件名 字段 如何 我知道文件视图 它删除文件系统文件中的扩展名 但将所选文件中的扩展名保留在 文件名 字段中解释 http saveimg ru show image
  • 记录共享和映射的诊断上下文

    据我所知 其他人做了什么来解决 Commons Logging 项目 针对 NET 和 Java 不支持映射或嵌套诊断上下文这一事实 执行摘要 我们选择直接使用实现者日志框架 在我们的例子中为 log4j 长答案 您是否需要一个抽象日志框架
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • 通过 r markdown 中的循环创建代码片段

    如同如何使用R中的knitr创建一个包含代码块和文本的循环 https stackoverflow com questions 36373630 how to create a loop that includes both a code
  • 通过 Shiny 中的串扰将 Plotly 与 DT 结合使用

    我正在编写一个应用程序来将 csv 文件读取为闪亮的并将散点图与 DT 表链接起来 我几乎遵循了 Plotly 网站上 DT 数据表上的示例 https plot ly r datatable https plot ly r datatab
  • 在 java 中运行外部应用程序但不要等待它完成

    我正在用java编写一个应用程序 允许我运行其他应用程序 为此 我使用了 Process 类对象 但当我这样做时 应用程序会等待进程结束 然后再退出 有没有办法在 Java 中运行外部应用程序 但不等待它完成 public static v
  • 按组计算连续行中的值之间的差异

    这是我的一个df 数据框 group value 1 10 1 20 1 25 2 5 2 10 2 15 我需要按组计算连续行中的值之间的差异 所以 我需要一个结果 group value diff 1 10 NA because the
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • java中void的作用是什么?

    返回类型 方法返回值的数据类型 如果方法不返回值 则返回 void http download oracle com javase tutorial java javaOO methods html http download oracle
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p

随机推荐

  • 我如何在 FMX 中使用 showmodal?

    我正在尝试为我的主 Android 表单创建一个登录表单 所以我做了这样的事情 var CanGo Boolean begin Application Initialize Application CreateForm TForm1 For
  • OpenCV 将一种颜色转换为另一种颜色

    我有一张灰度图像 我想将所有白色像素 纯白色 255 转换为黑色 0 仅那些颜色 而不是所有灰度 我怎样才能做到这一点 谢谢你 罗恩 您可以执行以下操作 使用阈值设置图像inRange http docs opencv org module
  • Rxjava tolist() 未完成

    我的 RxJava 调用链有问题 toList 无法正常工作 我猜想 toList 需要一些东西来完成 这就是它被卡住的原因 但我不知道如何解决这个问题 The code mModel getLocations flatMapIterabl
  • “ApacheCordovaToolsPackage”包未正确加载

    我刚刚安装了 VS 2015 Professional 并尝试安装 Visual Studio Tools for Apache Cordova 它成功完成 然而 当我尝试为此创建一个新项目时 它就卡在那里了 然后 如果我打开 VS 201
  • Ant 和可用任务 - 如果某些任务不可用怎么办?

    当我使用该任务时 仅当资源 例如文件 可用时 该属性才会设置为 TRUE 如果不是 则该属性未定义 当我打印属性的值时 如果资源可用 则返回 true 否则仅打印属性名称 如果资源是 有没有办法将属性设置为某个值not可用的 我尝试在可用检
  • 请解释一下这个高阶函数的javascript代码

    我正在按照 Eloquent JavaScript 书学习高阶函数 我无法理解这段代码 为什么 布尔值 作为嘈杂的第一个参数传递 这应该是改变其他功能的功能 我只是不明白它是如何工作的 function noisy f return fun
  • 使用可变属性名称反序列化 JSON

    我想反序列化 jsonhere http feiertage jarmedia de api jahr 7Byear 7D 与此类似 BW Neujahrstag datum 2017 01 01 hinweis Heilige Drei
  • Admin 中 Django 的外键参考

    我一直在尝试在 Django admin 中解决这个问题 但仍然找不到文档 In my 模型 py 我有以下代码 from django db import models class Post models Model title mode
  • 将 Mma 7 中的 Caps lock 键重新映射为 Esc

    TLDR 如何在 Mma 7 中将 CapsLock 转换为 ShortNameDelimiter I like pretty text in my mma notebooks and often define functions as f
  • getInstance() 是如何工作的?

    最近我阅读了一些广泛使用以下 getInstance 方法的 C 代码 class S private int some int 0 public static S getInstance static S instance return
  • 为listview的每一行设置按钮onclick事件

    我使用 AsyncTask 通过 json 解析填充 listview 在列表视图的每一行中我都有一个按钮 我想为他们编写 onclickLister 我希望 当我单击 添加到购物车 时 将名称 价格和数量的数据保存到 sqlite pub
  • 从单独的配置文件中的 web.config 中移出

    我们的 web config 中有许多 超过 100 个 重定向 例如
  • 当用户单击未找到匹配项时触发事件 jquery 插件 select2

    当用户单击 jquery 插件 select2 中未找到匹配消息时 是否有可能触发事件 我的项目需要该事件我已经尝试过这段代码 但它似乎不起作用 select2 no results live click function alert Ye
  • html 实体不转换特殊字符

    我正在使用 html 实体 它会转换带有重音符号的字符 但它不会转换这种类型的引号 相反 浏览器会显示一个带有问号的奇怪符号 如何转换这些显示为符号的字符 在 桌子上有一本名为 Hello Colors 的书 我已经尝试过这个命令 但它不起
  • Spring data jdbc:如何使用 org.springframework.data.geo 包中的 Point

    我有一个实体 public class Arena Id private final Long id Embedded onEmpty Embedded OnEmpty USE NULL final Point location 点来自于o
  • 如何在 vim 正则表达式中替换或查找不可打印的字符?

    我有一个文件 其中包含一些不可打印的字符 如 C 或 B 我想查找并替换这些字符 我该如何做 仅删除控制符号 s cntrl g 删除不可打印的字符 请注意 在 8 1 1 之前的版本中 这也会删除非 ASCII 字符 s print g
  • Passenger:无法加载此类文件 ruby​​gems/builder

    我试图用 Apache2 和 ruby 2 0 安装乘客 当我这样做时 我遇到了这一行错误 passenger install apache2 module Error Compiling and installing Apache 2 m
  • 计算 mongoDB 中不同值的数量

    这是mongoDB中的文档结构 id ObjectId 9elesdf3lk3jppefll34d210 category data1 product data id ObjectId 9elesdf3lk3jppefll34d211 ca
  • 如何设置TestNG+Jenkins

    我正在使用 Jenkins 运行一些 testNG 测试 当构建完成后 我最后收到以下消息 INFO Build failures were ignored TestNG Reports Processing START Looking f
  • 卸载 rJava 和/或重新启动 JVM

    我想用rJava结合mcparallel但显然JVM 无法被 fork https stat ethz ch pipermail r devel 2013 November 067960 html 因此 需要为每个子进程启动一个单独的 JV