使用“设备接入模拟器(HubSimulator.jar)”踩过的坑
购买了《基于物联网平台的自贩机销量分析》的微认证,认真的按照实验手册做实验,其实这个实验流程还是比较长的。包含了云上操作和本地操作二个部分。其中云上操作大致有:建立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运行成功图,真心不容易
- 点赞
- 收藏
- 关注作者
评论(0)