目标:Java通过code playground控制台发布MQTT消息。在将指令移植到Android Studio之前,操场用于证明功能。
单击指向code playground的链接后,单击“运行”按钮以重现该错误。
为什么要在代码游乐场中添加导入语句?:
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
导致失败:
./Playground/Playground.java:4: error: package org.eclipse.paho.client.mqttv3 does not exist
import org.eclipse.paho.client.mqttv3.MqttClient;
^
./Playground/Playground.java:5: error: package org.eclipse.paho.client.mqttv3 does not exist
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
^
./Playground/Playground.java:6: error: package org.eclipse.paho.client.mqttv3 does not exist
import org.eclipse.paho.client.mqttv3.MqttException;
^
./Playground/Playground.java:7: error: package org.eclipse.paho.client.mqttv3 does not exist
import org.eclipse.paho.client.mqttv3.MqttMessage;
^
./Playground/Playground.java:8: error: package org.eclipse.paho.client.mqttv3.persist does not exist
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
^
5 errors
答案 0 :(得分:2)
tl; dr-这可能永远无法工作
Paho Java库不包含在Java SDK的默认类中。这就是所谓的第三方库。
它作为一个jar文件提供,您需要将其添加到要与其一起使用的任何Java运行时的类路径中。
有数十万个此类库,每个库都提供不同的额外功能,这些功能扩展了默认的标准类集,并且在不同的发行版本中也可用。
代码游乐场的管理员不可能事先知道用户可能想要尝试哪些库,仅在类顶部包含导入语句并不能完全识别您所使用的库版本卑鄙的。
虽然像Maven这样的系统提供了一种以标准方式查找和下载这些库的方法,但它仍然不适合此类环境,并且无法涵盖您可能想要的每个库。
即使操场上确实有一种方法可以指定第三方库,这也会带来巨大的安全问题,因为他们无法控制现在将在其计算机上运行的代码。我希望这些代码段已经在安全管理器下运行,该安全管理器可防止访问Internet和本地文件系统。这将阻止您连接到代理。