解决Gradle报错:找不到JavaFX Jar文件(M1 Mac专属问题)
解决方案:M1 Mac上Gradle找不到JavaFX 11 mac-aarch64构件
问题根源
JavaFX 11发布时Apple M1芯片尚未推出,因此Maven中央仓库中没有提供对应mac-aarch64架构的JavaFX构件,这就是仅M1设备报错的核心原因。
推荐解决方案
方案1:强制使用x86_64架构的JavaFX包(依赖Rosetta转译)
M1芯片支持Rosetta 2转译x86_64程序,直接在Gradle配置中指定mac x86_64版本的JavaFX即可:
在项目的build.gradle(或根目录的build.gradle)中添加/修改配置:
// 若使用javafx插件 plugins { id 'org.openjfx.javafxplugin' version '0.0.13' } javafx { version = '11' modules = ['javafx.web'] // 强制指定x86_64架构的mac包 platform = 'mac' } // 或者直接在依赖中指定分类器 dependencies { implementation group: 'org.openjfx', name: 'javafx-web', version: '11', classifier: 'mac' }
方案2:升级JavaFX到支持M1的版本
JavaFX 17及以上版本正式支持mac-aarch64架构,升级版本能从根本上解决架构适配问题:
修改Gradle中的JavaFX版本配置:
javafx { version = '17' modules = ['javafx.web'] }
注意:升级前需确认ZAP扩展代码兼容JavaFX 17,避免出现版本适配问题。
关于手动添加本地Jar的方向
你尝试手动添加Jar的方向是可行的,但操作需注意以下步骤:
- 将下载的JavaFX相关Jar包(需包含所有依赖模块,如
javafx-base、javafx-controls等)放入项目的libs目录(无则新建); - 在
build.gradle中添加本地仓库:
repositories { flatDir { dirs 'libs' } mavenCentral() }
- 声明本地依赖:
dependencies { implementation name: 'javafx-web-11-mac-aarch64' // 替换为你实际的Jar文件名(不带.jar后缀) }
此方法需手动管理所有JavaFX依赖模块,维护成本较高,仅推荐在无法升级版本或使用转译的场景下使用。
内容的提问来源于stack exchange,提问作者Daan Seuntjens
相关产品推荐
相关产品推荐

