如果在ubuntu上二個jdk都要安裝javafx(openjfx),會是一件頭痛的事。
先來處理jdk8 + openjfx8:
為了jdk8能使用javafx,需強制降版安裝openjfx8:sudo apt install \
openjfx=8u161-b12-1ubuntu2 \
libopenjfx-java=8u161-b12-1ubuntu2 \
libopenjfx-jni=8u161-b12-1ubuntu2
sudo apt-mark hold \
openjfx \
libopenjfx-java \
libopenjfx-jni
(當然也可以直接改用oracle jdk8,但oracle是個死要$的公司,你知道的)
改安裝zulu jdk也可以,jkd8直接就含openjfx,未來會連jdk11也一起包含openjfx。
https://www.azul.com/zulu-gets-graphical-with-openjfx/
=========================這裡可以跳過============================
也可以手動下載deb來裝:
https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/libopenjfx-java_8u161-b12-1ubuntu2_all.deb.html
https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/openjfx_8u161-b12-1ubuntu2_amd64.deb.html
https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/libopenjfx-jni_8u161-b12-1ubuntu2_amd64.deb.html
比較怕死的,將這三個.deb手動解壓縮:
dpkg -x libopenjfx-java_8u161-b12-1ubuntu2_all.deb ./openjfx8
dpkg -x openjfx_8u161-b12-1ubuntu2_amd64.deb ./openjfx8
dpkg -x libopenjfx-jni_8u161-b12-1ubuntu2_amd64.deb ./openjfx8
再依解壓縮後的目錄結構放到系統對應的資料夾。
或直接下指令強迫安裝(注意,--refuse-overwrite=不覆寫舊檔):
dpkg --install --refuse-overwrite --force-depends --force-conflicts libopenjfx-java_8u161-b12-1ubuntu2_all.deb
dpkg --install --refuse-overwrite --force-depends --force-conflicts openjfx_8u161-b12-1ubuntu2_amd64.deb
dpkg --install --refuse-overwrite --force-depends --force-conflicts libopenjfx-jni_8u161-b12-1ubuntu2_amd64.deb
=================================================================
再來處理jdk11+ openjfx11:
要是apt強制降版裝openjfx8,那原本預設的openjfx11就會被移除,因此只能手動處理。
先手動下載openjfx模組(JavaFX Linux jmods)放到:
/usr/lib/jvm/java-1.11.0-openjdk-amd64/jmods
再下載openjfx SDK(JavaFX Linux SDK),解壓縮後要放哪都行,譬如放到
/usr/lib/jvm/java-1.11.0-openjdk-amd64/openjfx
如果是用Jetbrains IntelliJ + JDK >=11,可以參考以下設定環境:
https://openjfx.io/openjfx-docs/#IDE-Intellij
(先新增專案的openjfx SDK library路徑,然後編輯module-info.class加入javafx對應模組,或直接在VM啟動選項新增模組路徑及對應模組)
=================================================================
別忘了裝scene builder:
https://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html
https://docs.oracle.com/javase/8/scene-builder-2/installation-guide/jfxsb-installation_2_0.htm
=================================================================
ref:
https://stackoverflow.com/questions/49469941/netbeans-error-bundler-webstart-jnlp-bundler-jnlp-failed-to-produce-a-bundl
http://hongouru.blogspot.com/2015/09/solved-error-building-new-project-using.html
https://stackoverflow.com/questions/53744923/java-lang-unsatisfiedlinkerror-com-sun-glass-ui-gtk-gtkapplication-isdisplayva
https://bugs.launchpad.net/ubuntu/+source/openjfx/+bug/1799946
沒有留言:
張貼留言