Javafx WebEngine 从 jar 加载 html 文件

标签 javafx javafx-webengine

我正在构建一个项目,需要使用 WebEngine 类。所以我有 2 个项目,MainASecondB . SecondB项目依赖于 MainA ,所以在构建它之后 SecondB成为 MainA 中的 jar 文件libs 文件夹。
现在。我需要开一个abc.html SecondB 下的文件资源。在本地测试它时它可以工作,当构建应用程序并将其部署在服务器上时它失败(可能是因为它在 SecondB jar 文件中)。所以我使用的代码是:

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();  
ClassLoader classLoader = getClass().getClassLoader();
String s = classLoader.getResource("subfolder/abc.html").toExternalForm();
webEngine.load(s);

方法classLoader.getResource("subfolder/abc.html").toExternalForm();在本地运行代码时返回一个正常的 url,例如:
file:jar:C:/Something/MainA/libs/SecondB.jar!/subfolder/abc.html

您对如何从 jar 加载此文件有任何想法吗?我尝试了在 SO 上找到的几个选项,但没有成功

最佳答案

你可以创建一个“资源”包并将你的文件复制到这个包中,为了访问你的文件路径,例如一个 html,你可以使用这个:getClass().getResource("/resources/abc.html").toURI().toString()这提供了在您创建的 jar 中获取您的文件 url。希望它有用。

关于Javafx WebEngine 从 jar 加载 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090640/

相关文章:

java - PathTransition 没有像我想象的那样工作(使用 CubicCurveTo/ArcTo 和一般坐标的混淆)

JavaFX 应用程序不与 Selenium WebDriver 一起运行

JavaFX WebView 无法加载某些网站

java - 如何拒绝从javafx web访问网页

JavaFX WebView 白页(未加载)

JavaFx WebEngine - 用(本地)文件覆盖网站的样式表

Java 从元素获取文本内容以包含换行符

javafx - 如何在javafx中将TextField的一部分标记为只读?

java - 在Java FX中,如何从左上角(而不是左下角)开始绘制文本?

java - 无法在场景构建器中添加图像 url