【发布时间】:2019-07-30 09:19:03
【问题描述】:
这里有新用户! 我知道有类似问题的答案,但我不知道如何将它们应用到我的案例中,如果重复,请见谅!
所以...我正在尝试为 Telegram 制作我的第一个机器人,并且我决定使用 Java。我正在关注this tutorial 并从两个示例类(EchoBot 和 Main)中复制粘贴代码。我唯一改变的是带有我从 Telegram 上的 BotGodfather 获得的令牌的令牌。 我在 Ubuntu 18.04.1 上使用 Eclipse 作为 IDE,所以我首先创建了一个 Java 项目,然后将其配置为 Maven 项目。这是我的 pom.xml 的代码: `
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>EchoBot</groupId>
<artifactId>EchoBot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>EchoBot</name>
<dependencies>
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>3.6.1</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
`
当我运行程序时出现此错误:
线程“main”中的异常 java.lang.NoClassDefFoundError: com/google/inject/Module 在 org.telegram.telegrambots.ApiContext.getInjector(ApiContext.java:46) 在 org.telegram.telegrambots.ApiContext.getInstance(ApiContext.java:25) 在 org.telegram.telegrambots.bots.TelegramLongPollingBot.(TelegramLongPollingBot.java:17) 在pearlbot.EchoBot.(EchoBot.java:8) 在pearbot.Main.main(Main.java:17) 引起:java.lang.ClassNotFoundException:com.google.inject.Module 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ... 5 更多
可能是什么问题? 请记住,我什至不知道 Maven 是什么,所以如果它与它相关,你需要解释什么是错误的,就好像你在和一个孩子说话一样! ^^''
【问题讨论】:
-
运行 mvn clean install,它会将必要的 jars 放到你的类路径中。
-
您的 pom.xml 中可能缺少依赖项。对于很大一部分(但不是唯一)而言,maven 是一个依赖管理工具。它确保您需要的库在您的路径上。显然,它错过了一个图书馆。
-
好的,成功了!谢谢! :D
标签: java maven bots telegram noclassdeffounderror