我正在构建一个项目,需要使用 WebEngine 类。所以我有 2 个项目,MainA
和 SecondB
. 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/