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

NetBeans生成Java程序EXE安装包报错求助

解决方案及替代打包方案

针对JDK20的脚本引擎报错

JDK 15及以后版本移除了内置的Nashorn JavaScript引擎,而NetBeans的打包模块可能依赖它处理脚本逻辑,导致Unable to create javax script engine for javascript错误。解决方式:

  • 添加Nashorn依赖:如果项目用Maven,在pom.xml中加入以下依赖:
    <dependency>
        <groupId>org.openjdk.nashorn</groupId>
        <artifactId>nashorn-core</artifactId>
        <version>15.4</version>
    </dependency>
    
    Gradle项目则在build.gradle中添加:
    implementation 'org.openjdk.nashorn:nashorn-core:15.4'
    
  • 升级NetBeans到最新版本:较新的NetBeans版本已适配JDK 20+,可能已移除对Nashorn的依赖,或自动处理引擎缺失问题。

针对JDK14的FXJar找不到报错

从JDK 11开始,JavaFX被从JDK中剥离为独立模块,com.sun.javafx.tools.ant.FXJar这类Ant任务不再默认包含在JDK里,导致报错。解决方式:

  • 引入JavaFX Ant任务依赖:下载JavaFX SDK,找到ant-javafx.jar(通常在lib目录下),将其添加到NetBeans的Ant类路径中,或者在项目的Ant构建脚本中显式引入该jar包。
  • 改用JavaFX官方打包工具:放弃NetBeans自带的Package功能,直接使用JavaFX的javapackager(JDK14及以前)或JDK内置的jpackage(JDK14+)。

替代打包方案(推荐)

方案1:使用JDK内置的jpackage

这是官方推荐的打包工具,从JDK14开始内置,支持生成Windows EXE、Mac DMG、Linux DEB/RPM等格式,步骤如下:

  1. 确保项目已编译为包含主类清单的可执行jar包。
  2. 打开终端切换到项目输出目录,执行类似命令:
    jpackage --name 你的项目名 --input ./jar目录 --main-jar 你的主jar包.jar --main-class 你的主类全路径 --type exe
    
    可添加图标、安装路径等自定义参数,具体参考jpackage官方文档。

方案2:使用Maven/Gradle的JavaFX插件

  • Maven:配置javafx-maven-plugin后,执行mvn jfx:jar生成可执行jar,再执行mvn jfx:native生成原生安装包。
  • Gradle:配置javafx-gradle-plugin后,执行gradle jfxNative生成安装包。

方案3:使用Launch4j

这是轻量级工具,可将Java jar包包装成Windows EXE文件,支持设置图标、指定JRE路径等,操作简单,适合快速打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:05:04