diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt index 6df638cde..176447542 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt @@ -40,7 +40,7 @@ class DefaultLoginSolver( private val delegate: LoginSolver init { - if (Desktop.isDesktopSupported()) { + if (WindowHelperJvm.isDesktopSupport) { delegate = SwingSolver } else { delegate = DefaultLoginSolverImpl(input, overrideLogger) diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt index de22d2b76..d45592bd4 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt @@ -23,6 +23,16 @@ import java.awt.event.WindowEvent import javax.swing.JFrame import javax.swing.JTextField +// 隔离类代码 +internal object WindowHelperJvm { + internal val isDesktopSupport: Boolean = + kotlin.runCatching { + Desktop.isDesktopSupported() + }.getOrElse { + false + } +} + internal class WindowInitialzier(private val initializer: WindowInitialzier.(JFrame) -> Unit) { private lateinit var frame0: JFrame val frame: JFrame get() = frame0