所以我尝试使用名为preferencesfx的库,它使用fontawesomefx,抛出以下错误。
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at de.jensd.fx.fontawesomefx.commons/de.jensd.fx.glyphs.GlyphsFactory.loadFont(GlyphsFactory.java:64)
at de.jensd.fx.fontawesomefx.commons/de.jensd.fx.glyphs.GlyphsFactory.<init>(GlyphsFactory.java:38)
at de.jensd.fx.fontawesomefx.fontawesome/de.jensd.fx.glyphs.fontawesome.utils.FontAwesomeIconFactory.<init>(FontAwesomeIconFactory.java:28)
at de.jensd.fx.fontawesomefx.fontawesome/de.jensd.fx.glyphs.fontawesome.utils.FontAwesomeIconFactory.get(FontAwesomeIconFactory.java:33)
at com.dlsc.preferencesfx@11.7.0/com.dlsc.preferencesfx.view.UndoRedoBox.<init>(UndoRedoBox.java:17)
at com.dlsc.preferencesfx@11.7.0/com.dlsc.preferencesfx.PreferencesFx.init(PreferencesFx.java:71)
at com.dlsc.preferencesfx@11.7.0/com.dlsc.preferencesfx.PreferencesFx.<init>(PreferencesFx.java:64)
at com.dlsc.preferencesfx@11.7.0/com.dlsc.preferencesfx.PreferencesFx.<init>(PreferencesFx.java:55)
at com.dlsc.preferencesfx@11.7.0/com.dlsc.preferencesfx.PreferencesFx.of(PreferencesFx.java:102)
at my.package.tryThis(Clusters.java:38)
at my.package.Main.main(Main.java:17)
... 11 more
Caused by: java.lang.NullPointerException
at de.jensd.fx.fontawesomefx.commons/de.jensd.fx.glyphs.GlyphsFactory.loadFont(GlyphsFactory.java:62)
... 21 more
Exception running application my.package.Main
我在glyphs工厂类的第62行找到了问题的原因,但我不知道如何修复它。
方法 GlyphsFactory.class.getResource(pathToIconFont)
退货 null
,而不是返回字体文件。我可以看到该方法是通过路径加载字体文件 /de/jensd/fx/glyphs/fontawesome/fontawesome-webfont.ttf
(这似乎是正确的)。我可以看到字体是从软件包中加载的 de.jensd.fx.glyphs.fontawesome
Package de.jensd.fx.glyphs
但两个包裹装在不同的jar里。
知道为什么吗 getResource()
退货 null
? 我向开发人员报告了它,但似乎fontawesomefx库被放弃了。
我用最新的intellij在MacOSX上运行这个。
1条答案
按热度按时间utugiqy61#
我通过更改以下行成功地修补了库(看完本文)。
对这件事。