簡體   English   中英

TornadoFX _ Kotlin _ IntelliJ IDEA:由於我在項目中使用 openJDK 8,我怎么可能得到“未解決的參考:javafx”?

[英]TornadoFX _ Kotlin _ IntelliJ IDEA: How is it possible that I am getting an “Unresolved reference: javafx” since I am using openJDK 8 in my project?

我正在嘗試從KotlinTornadoFX開始。

我已經下載Java jdk8u252-b09並將其設置為我的項目 SDK。 見下圖:

在此處輸入圖像描述

我看到這篇文章告訴我們未解決的參考: javafx的錯誤與運行 Java 版本大於或等於 v11 的事實有關,而無需在項目中導入 Z47A34A9D6CE8F06ECB97078888。 我已經閱讀了 Java 的 v8 集成了 JavaFX。 正如我已經說過的,在我的項目中,我正在運行 Java 1.8 作為 SDK。 所以應該防止出現這個問題。

不過,當我“調試運行”時,我的調試控制台返回給我:

未解決的參考:javafx

如下圖所示:

在此處輸入圖像描述

我看到的唯一可能有問題的地方是我機器上運行的軟件。 當我在 linux 終端中運行 java --version 時,它返回給我:

openjdk 11.0.7 2020-04-14

由於我在 Debian Buster 上,看來 openjdk 11 是操作系統版本支持的最舊版本。 因此,如果問題與系統中安裝的 openjdk 有關,我想知道除了運行虛擬機之外是否有任何解決方法。 此外,我認為安裝在 IntelliJ IDEA 中的 SDK 將克服在我的項目上下文中安裝在我的系統中的 Java 版本,從而防止安裝在我機器中的軟件導致運行我的項目出現任何問題。

那么我的錯誤怎么可能呢? 我能做些什么來解決這個問題?

事實上,在我下載的jfxrt.jar的 OpenJDK8 版本中丟失了。

所以我單獨下載了一個jfxrt.jar並將其包含在我的/jdk8u252-b09/jre/lib/ext/文件夾中。

然后控制台告訴我缺少一個工具包。

因此,在/jdk8u252-b09/中,我剛剛將jdk8u252-b09的原始 jre 完全替換為https://java.com/en/download/linux_manual.jsp提供的 jre。

在這種情況下,有效地確保在您的項目結構中,在“模塊”部分 ->“依賴項”選項卡中,您的依賴項指向相關文件夾 [感謝 DoombringerBG]。

您項目的 SDK 也是如此,確保它是最新的。

關於您的庫,它應該知道沒問題,因為在您的 Java8 文件夾樹中包含 JavaFX。

一言以蔽之,確保您的項目是最新的,因為您更換了 jre 文件夾。

現在我的項目工作正常。

我發現大多數 OpenJDK8 不包括 JavaFX。 我知道有兩個這樣做的,您可能想嘗試使將來的更新更容易:

  • Zulu : 你必須 select "JDK FX" 在 Java Package 下拉
  • Liberica :您必須 select “完整 JDK”

Liberica 為 raspberry pi 和各種其他架構提供構建。 如果您需要,Liberica 是通往 go 的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM