Выдает ошибку при запуске телеграм бота

Подскажите, пожалуйста, в чем причина ошибки? Заренее спасибо!

Exception in thread "main" com.google.common.util.concurrent.ExecutionError: java.lang.ExceptionInInitializerError
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2205)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875)
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4881)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:138)
    at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:550)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:887)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:808)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:285)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:217)
    at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:893)
    at com.google.inject.internal.FactoryProxy.notify(FactoryProxy.java:46)
    at com.google.inject.internal.ProcessedBindingData.runCreationListeners(ProcessedBindingData.java:50)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:134)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
    at com.google.inject.Guice.createInjector(Guice.java:99)
    at com.google.inject.Guice.createInjector(Guice.java:73)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at org.telegram.telegrambots.meta.ApiContext.getInjector(ApiContext.java:46)
    at org.telegram.telegrambots.meta.ApiContext.getInstance(ApiContext.java:25)
    at org.telegram.telegrambots.bots.TelegramLongPollingBot.<init>(TelegramLongPollingBot.java:16)
    at Bot.<init>(Bot.java:4)
    at App.main(App.java:9)
Caused by: java.lang.ExceptionInInitializerError
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.getProtectionDomain(FastClass.java:73)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:206)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:252)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:203)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:53)
    at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:158)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:90)
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33)
    at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
    ... 25 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @42d8062c
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    at com.google.inject.internal.cglib.core.$ReflectUtils$1.run(ReflectUtils.java:52)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
    at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:42)
    ... 41 more

Process finished with exit code 1

Class Bot

    import org.telegram.telegrambots.bots.TelegramLongPollingBot;
    import org.telegram.telegrambots.meta.api.objects.Update;

    public class Bot extends TelegramLongPollingBot {

     @Override
     public void onUpdateReceived(Update update) {

     }

     @Override
     public String getBotUsername() {
         return "someName";
     }

     @Override
     public String getBotToken() {
         return "someToken";
     }
    }

Class App

    import org.telegram.telegrambots.ApiContextInitializer;
    import org.telegram.telegrambots.meta.TelegramBotsApi;
    import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;

    public class App {
     public static void main(String[] args) {
         ApiContextInitializer.init();
         TelegramBotsApi api = new TelegramBotsApi();
         Bot bot = new Bot();
         try {
             api.registerBot(bot);
         } catch (TelegramApiRequestException e) {
             e.printStackTrace();
         }
        }
       }

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
    <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>org.bot</groupId>
    <artifactId>telegrambot</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.telegram</groupId>
            <artifactId>telegrambots</artifactId>
            <version>4.1</version>
        </dependency>
    </dependencies> 
</project>

Ответы (1 шт):

Автор решения: Alexandr

Некоторое внутренее API было закрыто начиная с Java 9. Рекомендую Вам использовать более современную версию зависимости.

<dependencies>
    <dependency>
        <groupId>org.telegram</groupId>
        <artifactId>telegrambots</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

И соотвественно немного изменить Ваш Main класс:

import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;

public class App {
    public static void main(String[] args) {
        try {
            TelegramBotsApi botsApi = 
                    new TelegramBotsApi(
                            DefaultBotSession.class);
            botsApi.registerBot(new Bot());
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }
}

В случае, если Вы же хотите оставить текущую версию зависимости, то Вам необходимо предоставить доступ к необходимому API добавив JVM аргумент --add-opens java.base/java.lang=ALL-UNNAMED. Более подробнее можете почитать в официальной документации.

→ Ссылка