使用“设备接入模拟器(HubSimulator.jar)”踩过的坑

举报
黄生 发表于 2020/09/20 23:10:27 2020/09/20
【摘要】 购买了《基于物联网平台的自贩机销量分析》的微认证,认真的按照实验手册做实验,其实这个实验流程还是比较长的。包含了云上操作和本地操作二个部分。其中云上操作大致有:建立VPC、MRS集群、OBS、IOT这边有设备接入IoTDA、DIS数据接入通道等,初次操作感觉会有点蒙蒙的,因为流程有点长,绕来绕去。然后本地操作呢,主要是按照设备模拟器,进行数据的模拟上报。云上的前面操作,都还挺顺利的,虽然动作...

购买了《基于物联网平台的自贩机销量分析》的微认证,认真的按照实验手册做实验,其实这个实验流程还是比较长的。包含了云上操作和本地操作二个部分。其中云上操作大致有:建立VPC、MRS集群、OBS、IOT这边有设备接入IoTDA、DIS数据接入通道等,初次操作感觉会有点蒙蒙的,因为流程有点长,绕来绕去。然后本地操作呢,主要是按照设备模拟器,进行数据的模拟上报。

云上的前面操作,都还挺顺利的,虽然动作不快,但基本都能衔接上并且可以完成。

问题卡在了“设备上报数据”这一个步骤,正常情况下,运行模拟器,会成功启动并提供图形界面,进行设置,连接和上报动作。但是,进入模拟器根本就运行不起来,图形界面都看不见,折腾了好久,真的是着急,无奈,又无助,迟迟找不到原因,都有点抑郁了,再加上实验资源是代金券抵扣的,但是只有使用二小时,而问题一直没进展,又担心花钱肉疼,太难了。

抑郁就在于,知道哪里,那个方向出了问题,却又定位不到具体点,解决不了。对自信心觉得是一种折磨和磨损。

问题是是这样的,按照手册说明在windows是双击,那在linux只能自己运行命令: java -jar HubSimulator.jar(因为Linux下双击默认操作是解压),却报错:找不到或无法加载主类com.huawei.cloud.iot.simulator.Main。我把jar包解开,这个Main.class明白的就在那里!那是CLASSPATH没设置好?我按照手册设置了又设置,担心拼写文字错误,检查了又检查,又不断的调整执行命令进行尝试,一遍又一遍,结果还是这样,我无法停止去不断尝试,就好像答案就在眼前,再抓一把就能抓到,却总是抓丢了。我真的很郁闷。仿佛陷入了一个泥潭,虽然我知道需要跳出来,也许什么都不做,再理一下思路,就能豁然开朗,却就是无法自拔。

好了,直接说原因,原因是我的ubuntu20.04在安装JDK时,使用的官方源(apt install)进行的安装,版本是OpenJDK1.8.0_265。这个是符合手册说明的,手册要求也是1.8,但手册步骤是下载OracleJDK。在排查过程中,我用javap看了一下Main.class类,它扩展了javafx类,我猜大致这是实现JAVA图形界面的。报错极具误导性:找不到类,类明明在那里!原因是:ubuntu源自带的JDK1.8里没有javafx相关类!下载OracleJDK安装后搞定!

这个是OracleJDK1.8的ext库目录,里面有javafx运行时,而ubuntu的openjdk1.8没有:

 jre/lib/ext/ 

    ├── [ 18472901] jfxrt.jar


这个是报错图,报错信息害死人不偿命啊,还让人抓狂而亡


这个是换oracleJDK运行成功图,真心不容易

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。