MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

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

    开发交流
    3
    7
    740
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Wybxc
      Wybxc 最后由 编辑

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

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

      1 条回复 最后回复 回复 引用 0
      • Karlatemp
        Karlatemp 最后由 编辑

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

        你干嘛不看文档

        Wybxc 1 条回复 最后回复 回复 引用 0
        • Wybxc
          Wybxc @Karlatemp 最后由 编辑

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

          emmmm

          Wybxc 1 条回复 最后回复 回复 引用 0
          • Wybxc
            Wybxc @Wybxc 最后由 编辑

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

            1 条回复 最后回复 回复 引用 0
            • Wybxc
              Wybxc 最后由 编辑

              终于知道该怎么搞了……

              首先编辑 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 条回复 最后回复 回复 引用 0
              • Wybxc
                Wybxc 最后由 编辑

                下一个问题是 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 条回复 最后回复 回复 引用 0
                • VatinaCharo
                  VatinaCharo @Wybxc 最后由 编辑

                  @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 条回复 最后回复 回复 引用 0
                  • 1 / 1
                  • First post
                    Last post
                  Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact