我已經構建了一個使用 Swing 和 Flatlaf 作為主題的 Java 應用程式。
當我通過 IDE(InteliJ)運行應用程式時,它運行沒有任何問題。在我使用packageMaven 的命令成功構建它之后,當我嘗試運行它時,我收到了這個錯誤:
(如果我通過maven-jar-plugin:3.1.0插件構建它,我會得到相同的結果)
Error: Unable to initialize main class com.Yad2AutomationWithGUI.bouncer.Main
Caused by: java.lang.NoClassDefFoundError: com/formdev/flatlaf/FlatDarculaLaf
我知道它與安裝在 PC 上的 JRE 和 JDK 有關,因此我已將它們更新到最新版本并Path為它們更新了 env。
C:\Users\USER>javac -version
javac 18.0.1.1
C:\Users\USER>java -version
java version "18.0.1.1" 2022-04-22
Java(TM) SE Runtime Environment (build 18.0.1.1 2-6)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1 2-6, mixed mode, sharing)
我Flatlaf以這種方式使用 Maven 匯入了存盤庫:
<dependencies>
<dependency>
<groupId>com.formdev</groupId>
<artifactId>flatlaf</artifactId>
<version>2.2</version>
</dependency>
....
</dependencies>
謝謝。
uj5u.com熱心網友回復:
此例外通常發生是因為在程式執行期間無法在運行時找到 .class 檔案。有時,它也會發生,因為服務器引擎本身已損壞,在這種情況下必須使用新的服務器實體。
- 使固定:
在部署目錄中手動替換 .class 檔案。一旦找到 .class 檔案,它將成功運行。完美的解決方法是在 Shell 腳本或 Java 類中為 autoDeployment = "true" 撰寫邏輯,其中所有類(src 和 .class、目標檔案夾和 webapp 中的其他檔案夾)都在其目錄中展開、測驗和驗證,并且然后自動運行 web 應用程式以查看 web 應用程式是否正常作業。
uj5u.com熱心網友回復:
您能否驗證一下 flatlaf 類是否包含在您使用 Maven 構建的 JAR 檔案中?
編輯:Thorbj?rn 的評論聽起來更可靠,我建議也查看類路徑。
另一種選擇是構建一個包含所有依賴類的“胖”JAR。查看 Maven Shade 插件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/482270.html
