在 Ubuntu 18.04 VM (VirtualBox) 上运行的 Shiny Server 应用程序存在 OpenStreetMaps 问题(Java 错误)

Posted

技术标签:

【中文标题】在 Ubuntu 18.04 VM (VirtualBox) 上运行的 Shiny Server 应用程序存在 OpenStreetMaps 问题(Java 错误)【英文标题】:Shiny Server app Running on Ubuntu 18.04 VM (VirtualBox) having issues with OpenStreetMaps (Java error) 【发布时间】:2020-06-22 14:23:02 【问题描述】:

我是 Shiny Server 的新手,对 Linux 不太熟悉,所以请耐心等待。

我在 Ubuntu 18.04 上运行 Shiny Server,它是一个虚拟机 (VirtualBox)。我在我的应用程序中使用了 OpenStreetMaps 包,它使用了 rJava 包。我在安装 rJava 和 OpenStreetMaps 包时遇到了一些麻烦,但在使用以下终端命令手动安装 Java 运行时环境和 Java 开发工具包后终于进行了管理:

* sudo apt update
* sudo apt install default-jre
* sudo apt install default-jdk
* sudo R CMD javareconf
* sudo su - -c "R -e \"install.packages('rJava', repos='https://cran.rstudio.com/')\""
* sudo su - -c "R -e \"install.packages('OpenStreetMap', repos='https://cran.rstudio.com/')\""

所有包都在一个全局库 /usr/local/lib/R/site-library 中。

通过 Shiny Server 运行应用程序时,我得到的错误是:

错误:发生错误。检查您的日志或联系应用作者进行澄清。

通过 RStudio 服务器运行应用程序时出现以下错误:

.jcall("java/lang/Class", "Ljava/lang/Class;", "forName", cl, 中的错误: RcallMethod: 无法确定对象类

.jfindClass(as.character(class)) 中的错误: Java Exception .jfindClass(as.character(class))new("jobjRef", jobj = , jclass= "java/lang/Throwable")

警告:.tryJava 中的错误:无法加载 Java 类。很可能是因为您的 R 安装未设置 Java。

以下是一些故障排除提示:

    安装 Java(对于 mac,请考虑从 https://support.apple.com/kb/DL1572?locale=en_US 安装 java 1.6)

    运行 R CMD javareconf 在终端。如果您使用的是 Mac OS X >= 10.7,您可能想尝试 R CMD javareconf JAVA_CPPFLAGS=-I/System/Library/Frameworks/JavaVM.framework/Headers 而是。

    188:停止

    187: .tryJava

    186: 打开地图

    185:[/home/amsp/Documents/MobileLab/app.R#326]

    183: .func

    180:上下文函数

    179: 环境$runWith

    172: ctx$run

    171: 自我$.updateValue

    169: 地图.latlon

    167:渲染图 [/home/amsp/Documents/MobileLab/app.R#347]

    165: 函数

    125: 绘图

    111: 反应式:plotObj

    95:drawReactive

    82: origRenderFunc

    81: 输出$plot_map1

    1:运行应用程序

我尝试运行 Run R CMD javareconf 并没有解决这个问题。

检查 Java 产量:

java-版本

openjdk 版本“11.0.6” 2020-01-14

OpenJDK 运行时环境(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)

OpenJDK 64 位服务器虚拟机(build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1,混合模式,共享)

javac-版本

javac 11.0.6

我想知道这可能是权限问题吗?任何帮助将不胜感激!谢谢!

【问题讨论】:

【参考方案1】:

结果整个事情看起来像是一个版本控制问题。 OpenStreetMap 似乎不喜欢 Java 11,但大多数东西都与 8 兼容。

重新启动 VM 以获得一个干净的启动,并且在执行之前不要尝试访问 Shiny 或 Rstudio。删除 Java 11 并安装 Java 8

sudo apt-get remove openjdk-11*

sudo apt-get install openjdk-8*

sudo R CMD javareconf

sudo service rstudio-server restart

sudo service shiny-server restart

然后访问 Shiny 并且它起作用了。

【讨论】:

以上是关于在 Ubuntu 18.04 VM (VirtualBox) 上运行的 Shiny Server 应用程序存在 OpenStreetMaps 问题(Java 错误)的主要内容,如果未能解决你的问题,请参考以下文章

部署到 tomcat 9(Ubuntu 18.04)时,角度路由不起作用

kubeadm部署1.17.3[基于Ubuntu18.04]

kubeadm部署1.17.3[基于Ubuntu18.04]

虚拟机 Ubuntu18.04 tensorflow cpu 版本

ubuntu18.04突然无法上网解决方法

ubuntu 18.04上的鱿鱼代理无法连接