Java FX无法加载字体图标

Java FX无法加载字体图标,java,maven,javafx,javafx-8,font-awesome,Java,Maven,Javafx,Javafx 8,Font Awesome,我是JavaFX新手。我正在使用下面的代码来加载我的本地HTML页面,该页面使用引导程序、Angular等 public class AppLauncher extends Application { public static void main(String[] args) { System.setProperty("sun.net.http.allowRestrictedHeaders", "true"); launch(args); }

我是JavaFX新手。我正在使用下面的代码来加载我的本地HTML页面,该页面使用引导程序、Angular等

public class AppLauncher extends Application {
    public static void main(String[] args) {
        System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
        launch(args);
    }

    @Override
    public void start(Stage stage) {
        WebView webview = new WebView();
        webview.getEngine().load(AppLauncher.class.getResource("/dashboard.html").toExternalForm());
        stage.setScene(new Scene(webview));
        stage.show();
    }
}
由于我的Java脚本具有来自不同域的XHR,所以我将其配置为允许跨域请求。 当我从Eclipse运行它时,一切都正常。 我需要一个可执行文件,所以我使用了
maven shade plugin
以及
launch4jmaven plugin
。 可执行文件创建得非常完美,可以打开我的HTML页面。 但问题是UI没有呈现HTML页面中的
font-awesome
图标(也不是来自创建的jar)。 我有
fa角度向下
fa-bell-o
fa搜索
。没有一个被展示出来。 请看图片和图片


是什么原因导致它在转换为可执行jar或exe时不呈现fa图标?

我有一个非常类似的问题,是的,正如上面的Master Po详细信息所述,我认为这是由于CSS引用字体位置,编译时无法到达。 我通过在我的webview中添加额外的CSS解决了这个问题:

yourWebviewObject.getEngine().setUserStyleSheetLocation("data:,@font-face{font-family:'FontAwesome';src:url('"+getClass().getResource("path/to/fontawesome-webfont.eot").toExternalForm()+"');src:url('"+getClass().getResource("path/to/fontawesome-webfont.eot").toExternalForm()+"') format('embedded-opentype'),url('"+getClass().getResource("path/to/fontawesome-webfont.woff2").toExternalForm()+"') format('woff2'),url('"+getClass().getResource("path/to/fontawesome-webfont.woff").toExternalForm()+"') format('woff'),url('"+getClass().getResource("path/to/fontawesome-webfont.ttf").toExternalForm()+"') format('truetype'),url('"+getClass().getResource("path/to/fontawesome-webfont.svg").toExternalForm()+"?v=4.7.0#fontawesomeregular') format('svg');}");
我花了一段时间才弄明白上面的问题(特别是
setUserStyleSheetLocation()
可以将数据放在自己的字符串中,而不需要实际的CSS文件),因此我希望它能帮助其他人

作为背景,我正在使用hugo创建一个静态网站,用于在JavaFX应用程序中提供帮助/文档


这种方法的想法来自:

我认为问题在于font-awome.css中的相对字体路径
@font-face{src:url('../fonts/fontawesome webfont.eot?v=4.7.0');src:url('../fonts/fontawesome webfont.eot?#iefix&v=4.7.0')格式('embedded-opentype')、url('../fontawesome webfont.woff2?v=4.7.0')格式('woff2'),}
似乎
Java Fx WebView转换为可执行文件(jar/exe)时无法访问这些文件。如果我使用CDN中的font awesome,没有问题。当它转换成可执行的jar时,仍然可以得到发生的事情:(也许可以帮助?