用JavaFX寫GUI的朋友肯定少不了SceneBuilder這個神器,拖拖拽拽就能完成窗口布局。但是對於Mac M1的用戶來說, SceneBuilder 並沒有提供M1版本,官方的intel版本能用但是很卡,用起來很難受。下面我們來看看如何直接從源碼構造M1版本的SceneBuilder。
準備工作
首先我們要下載M1版本的Zulu OpenJDK 16, 用來編譯源碼,然後要去Gluon的官網下載M1版本的JavaFX SDK, 如下:
JavaFX Mac OS X AArch64 SDK:
https://gluonhq.com/products/javafx/#ea
最後去github上拉取SceneBuilder master分支的代碼:
git clone https://github.com/gluonhq/scenebuilder --depth=1
至此準備工作完成。
編譯運行
切換到sceneBuilder項目目錄,執行
mvn clean package -Dmaven.test.skip=true
編譯代碼,注意要提前將命令行環境中的JAVA切換成剛剛下載好的Zulu OpenJDK 16, 否則如果OpenJDK版本低於11的話會編譯失敗。
完成後需要安裝依賴到本地倉庫:
mvn install -Dmaven.test.skip=true
接下來就可以直接運行了:
java \
--module-path ${JavaFX SDK解壓後的目錄}/lib \
--add-modules javafx.web,javafx.fxml,javafx.swing,javafx.media \
--add-opens=javafx.fxml/javafx.fxml=ALL-UNNAMED \
-cp app/target/lib/${mvn package打出來的jar包} \
com.oracle.javafx.scenebuilder.app.SceneBuilderApp
你會發現SceneBuilder絲滑流暢,開始寫代碼吧!