Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

可以正常加载但无法查询,提示"java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit" #8

Closed
suyoleaves opened this issue Apr 15, 2022 · 2 comments
Labels
bug Something isn't working

Comments

@suyoleaves
Copy link

环境

系统版本:腾讯云Ubuntu 20.04LTS
java版本:17
MCL版本:1.2.3
插件版本:1.1.0
出错命令:/apexmap

问题描述

插件载入没问题,但是使用命令时mcl控制台会提示如下信息
E/console: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108) at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:159) at kotlin.reflect.full.KCallables.callSuspendBy(KCallables.kt:74) at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invokeSuspend(CommandReflector.kt:305) at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invoke(CommandReflector.kt) at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invoke(CommandReflector.kt) at net.mamoe.mirai.console.command.descriptor.CommandSignatureFromKFunctionImpl.call$suspendImpl(CommandSignature.kt:88) at net.mamoe.mirai.console.command.descriptor.CommandSignatureFromKFunctionImpl.call(CommandSignature.kt) at net.mamoe.mirai.console.internal.command.CommandManagerImplKt.executeCommandImpl(CommandManagerImpl.kt:167) at net.mamoe.mirai.console.command.CommandManager.executeCommand(CommandManager.kt:131) at net.mamoe.mirai.console.command.CommandManager$INSTANCE.executeCommand(CommandManager.kt) at net.mamoe.mirai.console.terminal.ConsoleThreadKt$startupConsoleThread$3.invokeSuspend(ConsoleThread.kt:191) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit at java.desktop/sun.awt.AppContext$2.run(AppContext.java:273) at java.desktop/sun.awt.AppContext$2.run(AppContext.java:262) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/sun.awt.AppContext.initMainAppContext(AppContext.java:262) at java.desktop/sun.awt.AppContext$3.run(AppContext.java:315) at java.desktop/sun.awt.AppContext$3.run(AppContext.java:298) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/sun.awt.AppContext.getAppContext(AppContext.java:297) at java.desktop/javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:129) at java.desktop/javax.imageio.ImageIO.<clinit>(ImageIO.java:66) at pers.shennoter.MapStatKt.mapPictureMode(MapStat.kt:45) at pers.shennoter.MapStatKt.mapStat(MapStat.kt:34) at pers.shennoter.Map.apexMapInfo(RankLookUp.kt:75) ... 24 more

插件配置

ApiKey: WzhVrcA61fElDD12lSG0 mode: pic

做过的尝试

[x]重装不同java版本
[x]切换headless和普通版java软件包
[x]重装不同版本mcl
[√]百度后添加环境变量
export JAVA_TOOL_OPTIONS="-Djava.awt.headless=true"

目前状况

添加环境变量后,目前可以正常查询并发送图片

@Shennoter
Copy link
Owner

应该是这个类和硬件有一些兼容问题,所以使用headless脱离这些硬件运行就解决问题了

@Shennoter
Copy link
Owner

Shennoter commented Apr 15, 2022

好详细,谢谢反馈↖(^ω^)↗

@Shennoter Shennoter added the bug Something isn't working label Apr 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants