【问题标题】:JavaFX 2.2 generated image not shown after building jar-file构建 jar 文件后未显示 JavaFX 2.2 生成的图像
【发布时间】:2013-08-01 12:23:24
【问题描述】:

在我的 JavaFX 应用程序中,我使用 Apache 生成的带有barcode4j 的条形码,将其保存为目录 /data/images/ 中的 png 图像并将其嵌入到显示在 JavaFX WebView 上的网页中。

生成条形码后,我使用以下 Javascript 代码将其嵌入到网页中:

path = "file:/" + path.replace(/\\/gi,"/");
var barcodeElement = document.getElementById("productBarcode");
barcodeElement.setAttribute("src", path );
barcodeElement.style.display = "inline-block";

我使用绝对路径 C:\path\to\java-program\data\myimage.png 并从中构建一个文件 URL。 在 Eclipse 中使用它没有任何问题。但是当我构建我的项目并从我的 jar 文件启动它时,没有显示图像。但问题不在于路径不正确或生成图片不起作用,从而出现某种“未找到”错误。图片应该是白色的地方,周围有一个浅色边框。

现在最奇怪的部分是:如果您右键单击图像并选择“在新窗口中打开”,则会显示图像!

有人对此有想法吗?

非常感谢您!

【问题讨论】:

    标签: eclipse image javafx invisible


    【解决方案1】:

    我的理解是 WebView 不会让加载了一个协议的页面使用另一个协议访问文件。当您通过 http:// 加载并禁止 file:// 时,这非常有意义。在这里,您正在通过 jar:file:... 加载,而 webview 只会让您访问 jar:file:... 资源(我刚刚尝试过,我可以从同一个 jar 中的另一个 jar 文件访问图像文件,但不是来自外部!)。

    这听起来很像我的错误。

    here 提到的一种解决方法是使用“data:”URI(即直接在 HTML 文件中编码图像)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2013-07-15
      • 2017-11-18
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多