You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beryx Badass Runtime镜像TLS握手异常及JavaFX模块警告问题

问题解决方案

问题2:JavaFX模块未知警告(--list-modules未列出JavaFX模块)

原因

Badass Runtime插件默认不会自动识别并纳入外部JavaFX模块,即便jar包存在于镜像lib目录,也会因模块未被正确加入模块路径触发未知模块警告。JavaFX在JDK11+属于外部模块化依赖,需显式配置插件将其纳入runtime镜像的模块系统。

解决步骤

  1. 修改build.gradle中的Badass Runtime配置,显式指定需要包含的JavaFX模块:
plugins {
    id 'java'
    id 'org.openjfx.javafxplugin' version '0.0.13'
    id 'org.beryx.runtime' version '1.15.0'
}

// 配置JavaFX依赖模块
javafx {
    version = '11'
    modules = ['javafx.controls', 'javafx.graphics', 'javafx.web'] // 按需调整
}

// 配置Runtime镜像
runtime {
    // 显式添加JavaFX模块到镜像
    modules = [project.name, 'javafx.controls', 'javafx.graphics', 'javafx.web']
    // 确保模块路径包含JavaFX模块
    options = ['--add-modules', 'javafx.controls,javafx.graphics,javafx.web']
}
  1. 重新构建镜像:执行./gradlew runtime,之后运行./build/image/bin/[你的应用名] --list-modules,应能看到JavaFX模块被列出,警告同步消失。

问题1:TLS握手时SSLProtocolException: Received close_notify during handshake

原因

Runtime镜像默认未包含完整的加密相关模块(如jdk.crypto.cryptoki、jdk.crypto.ec),或信任库cacerts缺失/不完整,导致与瑞士Topo服务器握手时无法完成证书验证或加密协商,触发连接关闭。IDE使用完整JDK,包含这些模块,因此无问题。

解决步骤

方案1:添加加密相关模块到Runtime配置

修改build.gradle的runtime配置,补充加密模块:

runtime {
    modules = [
        project.name,
        'javafx.controls', 'javafx.graphics', 'javafx.web',
        'jdk.crypto.cryptoki', 'jdk.crypto.ec',
        'java.net.http' // 若使用HttpClient拉取瓦片需添加
    ]
}

方案2:确保信任库cacerts被包含

Runtime镜像的默认cacerts可能缺少瑞士Topo服务器的根证书,需将完整JDK的信任库复制到镜像中:

  1. 在build.gradle中添加配置:
runtime {
    jre {
        // 包含完整的cacerts文件
        options = ['--include-files', 'lib/security/cacerts']
    }
}
  1. 若上述配置不生效,可手动复制JDK安装目录下lib/security/cacerts到镜像的lib/security目录。

方案3:调试TLS握手过程

启动镜像时添加调试参数,定位具体问题:

./build/image/bin/[你的应用名] -Djavax.net.debug=ssl,handshake

根据输出日志查看握手失败的具体环节(如证书验证失败、协议不匹配等),针对性调整配置。


内容的提问来源于stack exchange,提问作者rickybobby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:25:34