JavaFX:Webkit追加文件路径而不是解释它们。

JavaFX:Webkit追加文件路径而不是解释它们。,java,css,javafx,path,Java,Css,Javafx,Path,我正在做一个JavaFX项目,在这个项目中我加载一个html页面,它调用CSS文件并加载一些东西。所有html,图像,css文件都位于名为resources的单独目录中,该目录位于src-->resources中。Java文件位于src-->应用程序-->Java文件中 当我直接运行应用程序时,我可以看到从CSS加载的图像,但是当我尝试从JAR文件或EXE文件加载图像时,路径会以一种奇怪的方式追加 什么奇怪的方式 因此,在Html中,我通过css/football.css调用加载css。然后加载

我正在做一个JavaFX项目,在这个项目中我加载一个html页面,它调用CSS文件并加载一些东西。所有
html
图像
css
文件都位于名为resources的单独目录中,该目录位于
src-->resources
中。Java文件位于
src-->应用程序-->Java文件中

当我直接运行应用程序时,我可以看到从CSS加载的图像,但是当我尝试从JAR文件或EXE文件加载图像时,路径会以一种奇怪的方式追加

什么奇怪的方式

因此,在Html中,我通过
css/football.css
调用加载css。然后加载css。现在我给出的图像路径是
。/img/image/ball.png
。当我直接运行应用程序时,它工作了,我可以看到图像。但一旦我创建了一个JAr或EXE,图像的路径就会变成
/location\u of_JAr/resources/css../img/image/ball.png
。在这种情况下,webkit浏览器应该向上移动一个目录,但它只是附加路径。为什么呢?我怎样才能解决这个问题

代码:

Football.html:

<link rel="stylesheet" type="text/css" href="css/football.css"/>
正在加载index.html:

final String hellohtml = "/resources/index.html";

public MyBrowser() {
        webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
            if (newValue == Worker.State.SUCCEEDED) {
                JSObject window = (JSObject) webEngine.executeScript("window");
                window.setMember("app", this);
                //webView.setEventDispatcher(webEventDispatcher);
            }
        });

        URL urlHello = getClass().getResource(hellohtml);

        webEngine.load(urlHello.toExternalForm());
        webView.setPrefSize(800, 600);
        webView.setContextMenuEnabled(false);

         webView.getChildrenUnmodifiable().addListener((ListChangeListener<Node>) change -> {
         Set<Node> deadSeaScrolls = webView.lookupAll(".scroll-bar"); for
         (Node scroll : deadSeaScrolls) { scroll.setVisible(true); } });

        getChildren().add(webView);
    }
最后一个字符串hellohtml=“/resources/index.html”;
公共MyBrowser(){
webEngine.getLoadWorker().stateProperty().addListener((可观察、旧值、新值)->{
if(newValue==Worker.State.successed){
JSObject window=(JSObject)webEngine.executeScript(“window”);
window.setMember(“app”,this);
//setEventDispatcher(webEventDispatcher);
}
});
URL urlHello=getClass().getResource(hellohtml);
load(urlHello.toExternalForm());
webView.setPrefSize(800600);
webView.setContextMenuEnabled(false);
webView.getChildrenUnmodifiable().addListener((ListChangeListener)更改->{
将deadseacrolls=webView.lookupAll(“.scroll bar”);设置为
(节点滚动:deadSeaScrolls){scroll.setVisible(true);}});
getChildren().add(webView);
}
那么,我能做些什么来解决这个问题呢?任何想法。多谢各位

final String hellohtml = "/resources/index.html";

public MyBrowser() {
        webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
            if (newValue == Worker.State.SUCCEEDED) {
                JSObject window = (JSObject) webEngine.executeScript("window");
                window.setMember("app", this);
                //webView.setEventDispatcher(webEventDispatcher);
            }
        });

        URL urlHello = getClass().getResource(hellohtml);

        webEngine.load(urlHello.toExternalForm());
        webView.setPrefSize(800, 600);
        webView.setContextMenuEnabled(false);

         webView.getChildrenUnmodifiable().addListener((ListChangeListener<Node>) change -> {
         Set<Node> deadSeaScrolls = webView.lookupAll(".scroll-bar"); for
         (Node scroll : deadSeaScrolls) { scroll.setVisible(true); } });

        getChildren().add(webView);
    }