Java 如何在WebView中加载新文件?

Java 如何在WebView中加载新文件?,java,javafx,webview,reload,Java,Javafx,Webview,Reload,我的程序有问题。我有一个web视图阶段,有时我想更改HTML文件,但我无法重新加载web视图并动态查看我的更改 public void showme(String what) { try { WebEngine webEngine = webvw.getEngine(); System.out.print("vsengine_projects/" + xoxo + "/" + what); URL url = this.getClass()

我的程序有问题。我有一个web视图阶段,有时我想更改HTML文件,但我无法重新加载web视图并动态查看我的更改

public void showme(String what) {
    try {
        WebEngine webEngine = webvw.getEngine();
        System.out.print("vsengine_projects/" + xoxo + "/" + what);
        URL url = this.getClass().getResource("vsengine_projects/" + xoxo + "/"  + what);
        webEngine.load(url.toString());
        System.out.println("KK");
    } catch (Exception e) {
        System.err.println("EXC " + e);
    }
}

这段代码可以工作,但仅适用于HTML文件的第一个版本,当我更改HTML文件中的某些内容并再次调用showme()时,什么都不会发生。Html文件位于本地目录中。是否有可能动态重新加载web视图?

我认为您需要在显示缓存之前清除缓存。可能在函数开始时调用以下命令:

java.net.CookieHandler.setDefault(new java.net.CookieManager());
我发现如何从下面引用的内容中清除会话数据:

JavaFXWebView的会话cookie存储在
java.net.CookieHandler

要自行管理Cookie,请创建的新实例
java.net.CookieManager:

java.net.CookieManager manager = new java.net.CookieManager();
然后将其设置为默认值:

java.net.CookieHandler.setDefault(manager);
java.net.CookieHandler.setDefault(new java.net.CookieManager());
要清除Cookie,只需调用removeAll方法:

manager.getCookieStore().removeAll();
或者只需创建cookie manager的新实例并将其设置为默认值:

java.net.CookieHandler.setDefault(manager);
java.net.CookieHandler.setDefault(new java.net.CookieManager());

我认为您需要在显示缓存之前清除缓存。可能在函数开始时调用以下命令:

java.net.CookieHandler.setDefault(new java.net.CookieManager());
我发现如何从下面引用的内容中清除会话数据:

JavaFXWebView的会话cookie存储在
java.net.CookieHandler

要自行管理Cookie,请创建的新实例
java.net.CookieManager:

java.net.CookieManager manager = new java.net.CookieManager();
然后将其设置为默认值:

java.net.CookieHandler.setDefault(manager);
java.net.CookieHandler.setDefault(new java.net.CookieManager());
要清除Cookie,只需调用removeAll方法:

manager.getCookieStore().removeAll();
或者只需创建cookie manager的新实例并将其设置为默认值:

java.net.CookieHandler.setDefault(manager);
java.net.CookieHandler.setDefault(new java.net.CookieManager());

你是从JavaFX线程调用
showme()
(使用
Platform.runLater()
)吗?不,我不是,但我可以试试。你是从JavaFX线程调用
showme()
(使用
Platform.runLater()
)吗?不,我不是,但我可以试试。