#java #maven #swing #netbeans
#java #maven #swing #netbeans
Вопрос:
Я создал проект Java Swing на основе maven в Netbeans 12.1. Я добавил некоторые зависимости в pom.xml:
com.formdev.flatlaf 0.43
com.formdev.flatlaf-swingx 0.43
com.formdev.flatlaf-extras 0.43
Я инициализирую использование FlatLAF в моей основной форме следующим образом:
public static void main(String args[]) {
FlatLightLaf.install();
}
Когда я запускаю свою программу в Netbeans, все работает отлично. Netbeans использует эту команду для запуска программы:
cd /Users/rene/htdocs/my-program; JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-
12.0.1.jdk/Contents/Home "/Applications/NetBeans/Apache NetBeans
12.1.app/Contents/Resources/NetBeans/netbeans/java/maven/bin/mvn" "-Dexec.args=-classpath
%classpath de.renepoepperl.my-program.Login" -
Dexec.executable=/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home/bin/java
org.codehaus.mojo:exec-maven-plugin:1.5.0:exec
Но когда я создаю программу «с зависимостями» и пытаюсь запустить java -jar my-program.jar
, я получаю несколько ошибок, говорящих: java.lang.Error: no ComponentUI class for
Я предполагаю, что FlatLAF пропускает некоторую конфигурацию. Но я не знаю почему.
Что я могу сделать, чтобы заставить FlatLAF работать?
Ответ №1:
Это происходит в случае, если классы FlatLaf были переименованы с помощью запутывания или других инструментов минимизации классов (например, плагина Maven Shade).
См . https://github.com/JFormDesigner/FlatLaf/issues/104
Проверьте, содержит ли jar все файлы из flatlaf.jar .