Him188 5 ani în urmă
părinte
comite
9c5bfb3bf5

+ 1 - 1
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)

+ 10 - 0
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