MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    怎样给 mirai-console 的插件加入图形界面?

    开发交流
    3
    7
    747
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Wybxc
      Wybxc last edited by

      今天花了一上午研究怎么把 javafx 嵌入插件项目里,毫无进展。

      第一个问题是我的 gradle 脚本该怎么写……

      1 Reply Last reply Reply Quote 0
      • Karlatemp
        Karlatemp last edited by

        https://openjfx.io/openjfx-docs/#gradle

        你干嘛不看文档

        Wybxc 1 Reply Last reply Reply Quote 0
        • Wybxc
          Wybxc @Karlatemp last edited by

          @karlatemp e2d57fc1-3ff7-4e3f-a873-66efd354d7a5-image.png

          emmmm

          Wybxc 1 Reply Last reply Reply Quote 0
          • Wybxc
            Wybxc @Wybxc last edited by

            @wybxc 懂了,需要先点一下“加载Gradle”变更

            1 Reply Last reply Reply Quote 0
            • Wybxc
              Wybxc last edited by

              终于知道该怎么搞了……

              首先编辑 build.gradle.kts,在 plugins 里id("net.mamoe.mirai-console") version "2.x.x" 下一行加入

              id("org.openjfx.javafxplugin") version "0.0.10"
              

              这时候在 idea 的右上角会出来这个:
              52b0c7d1-5c3b-4292-8f41-5d8f8e9fa20a-image.png

              先点击第一个,然后继续编辑 build.gradle.kts,在最后添加

              javafx {
                  modules = listOf("javafx.controls")
              }
              

              然后再点击这个:
              4fefa4d2-69e6-4075-b4da-24512b8d5c5d-image.png

              之后就可以正常地引入 JavaFX 了:

              import javafx.application.Application
              import javafx.stage.Stage
              
              class HelloApplication : Application() {
                  override fun start(stage: Stage) {
                      stage.title = "JavaFX"
                      stage.show()
                  }
              }
              
              fun showGUI() {
                  Application.launch(HelloApplication::class.java)
              }
              
              1 Reply Last reply Reply Quote 0
              • Wybxc
                Wybxc last edited by

                下一个问题是 OpenJDK 11 已经没有内置 JavaFX,所以直接在 mirai-console 里启动会报错。

                解决方法是下载 OpenJFX 的 SDK,然后在启动 mirai-console 时引入 JavaFX。

                以 Windows 系统下的 mirai-console-loader 为例,这是我的启动脚本mcl.cmd:

                @echo off
                set JAVA_BINARY="D:\mirai\java\bin\java.exe"
                set JAVA_LIBS="D:\mirai\java\javafx\lib"
                %JAVA_BINARY% --module-path %JAVA_LIBS% --add-modules javafx.controls -jar mcl.jar %*
                

                这里的 D:\mirai\java\javafx 文件夹是下载的 OpenJFX SDK 解压后的位置。

                VatinaCharo 1 Reply Last reply Reply Quote 0
                • VatinaCharo
                  VatinaCharo @Wybxc last edited by

                  @wybxc 在 怎样给 mirai-console 的插件加入图形界面? 中说:

                  下一个问题是 OpenJDK 11 已经没有内置 JavaFX,所以直接在 mirai-console 里启动会报错。

                  解决方法是下载 OpenJFX 的 SDK,然后在启动 mirai-console 时引入 JavaFX。

                  以 Windows 系统下的 mirai-console-loader 为例,这是我的启动脚本mcl.cmd:

                  @echo off
                  set JAVA_BINARY="D:\mirai\java\bin\java.exe"
                  set JAVA_LIBS="D:\mirai\java\javafx\lib"
                  %JAVA_BINARY% --module-path %JAVA_LIBS% --add-modules javafx.controls -jar mcl.jar %*
                  

                  这里的 D:\mirai\java\javafx 文件夹是下载的 OpenJFX SDK 解压后的位置。

                  如果要发布的话,其实建议用jlink打包一个jre环境进去
                  (应该大部分人都不会在自己电脑里装javafx,除了有开发需求的

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact