Leo*_*tis 3 javafx apple-silicon
我正在尝试在带有 Apple Silicon 芯片的 MacOS 系统上使用 Maven、gradle、sbt 或类似工具构建 JavaFx 项目,但遇到了如下错误:
UnsatisfiedLinkError: Can't load library: libprism_es2.dylib
Run Code Online (Sandbox Code Playgroud)
该怎么办?
JavaFx 从版本 17-ea+8 开始支持 Apple Silicon (aarch64) 架构。
但是您需要使用操作系统和体系结构的分类器来限定依赖性。
对于 Maven,依赖关系应该如下所示:
<!-- ... -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18.0.2</version>
<classifier>mac-aarch64</classifier>
</dependency>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)
在 gradle 中,JavaFx 插件版本 0.0.11 或更高版本将附加正确的分类器:
plugins {
// ...
id( "org.openjfx.javafxplugin" ) version "0.0.13"
// ...
}
Run Code Online (Sandbox Code Playgroud)
在 sbt 中,您可以将以下内容添加到您的build.sbt文件中:
lazy val myproject = ( project in file( "." ) )
.settings(
// ...
libraryDependencies ++= Seq(
//...
"org.openjfx" % "javafx-controls" % "18.0.2" classifier "mac-aarch64",
//...
)
// ...
)
Run Code Online (Sandbox Code Playgroud)
使用这些构建工具中的每一个,您都可以执行复杂的操作,以便您的构建定义动态地解析要应用的分类器,无论您构建的平台是什么。但这留给读者作为练习。
请注意,虽然System.getProperty( "os.name" )不能解析为org.openjfx在其分类器中用于识别目标平台的确切文本,但可以解析为Apple Silicon 计算机上的System.getProperty( "os.arch" )文本。aarch64
| 归档时间: |
|
| 查看次数: |
4329 次 |
| 最近记录: |