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

JPackage生成的Exe加载错误jvm.dll问题求助

问题排查与解决步骤

先确认runtime结构是否正确

先检查你用jlink生成的runtime目录:

  • 进入runtime/bin目录,查看是否存在client文件夹,且里面有jvm.dll文件。
  • 如果没有client文件夹,说明--vm=client参数未生效,原因可能是:
    • 你使用的Liberica JDK 19发行版不包含Client VM(部分精简版Liberica可能移除了该组件,建议切换到Full版Liberica JDK);
    • jlink命令未正确触发Client VM的打包,尝试在jlink命令中明确添加必要模块,示例:
      jlink --add-modules javafx.controls,javafx.fxml,java.base --vm=client --output runtime
      
      (根据你的JavaFX模块需求调整--add-modules内容)

强制exe使用Client VM

如果runtime目录下确实存在client/jvm.dll,但生成的exe仍尝试加载server版本,可通过以下方式修正:

  • 在jpackage命令中添加--java-options="-client"参数,强制应用启动时使用Client VM,示例命令:
    jpackage --type exe --runtime-image runtime --main-jar your-app.jar --main-class com.your.MainClass --java-options="-client"
    
  • 若已生成安装包,可找到应用安装目录下的配置文件(通常是app.cfg或类似名称),在启动参数中添加-client,保存后重新运行exe。

额外注意事项

  • 高版本JDK中Client VM的支持逐渐弱化,部分JDK发行版默认不再包含,确认Liberica JDK的版本说明,确保其提供Client VM组件;
  • bat启动正常是因为bat直接调用java命令,且你可能在bat中指定了-client参数,而exe的启动逻辑默认优先查找Server VM,导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:25:24