问题描述
我已经在Netbeans 12.1中创建了一个基于Maven的Java Swing项目。我在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工作?
解决方法
如果通过混淆或其他类最小化工具(例如Maven Shade Plugin)将FlatLaf类重命名,则会发生这种情况。
请参见https://github.com/JFormDesigner/FlatLaf/issues/104
检查jar是否包含flatlaf.jar中的所有文件。