如何将 MQTT Paho 导入 Java "游乐场"?



GOAL:Java 通过代码游乐场控制台发布 MQTT 消息。 游乐场用于在将指令移植到Android Studio之前证明功能。

在操场中重现错误消息

单击代码操场的链接后,单击"运行"按钮以重现错误。

错误消息

为什么要在代码操场中添加导入语句?

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

问题

  • 为什么找不到资源?
  • 如何克服障碍? (替补?

tl;博士 - 这可能永远不会奏效

Paho Java 库不包含在 Java SDK 中的默认类中。这就是所谓的第三方库。

它以 jar 文件的形式提供,您需要将其添加到要使用它的任何 Java 运行时的类路径中。

有成千上万的此类库,每个库都提供不同的额外功能,扩展默认的标准类集,并且还提供不同的发布版本。

代码操场的管理员不可能事先知道用户可能想要尝试哪些库,并且仅在类顶部包含导入语句并不能完全识别您指的是哪个版本的库。

虽然像Maven这样的系统提供了一种以标准方式查找和下载这些库的方法,但它仍然不适合这种类型的环境,并且不能涵盖您可能想要的每个库。

此外,即使游乐场确实有办法指定第三方库,这也会带来巨大的安全问题,因为他们无法控制现在在他们的机器上运行的代码。我希望这些代码片段已经在安全管理器下运行,该管理器阻止访问互联网和本地文件系统。这将阻止您连接到代理。

最新更新