2013-08-01 2 views
0

В моем приложении JavaFX я создаю штрих-код с barcode4j от Apache, сохраняю его как png-образ в каталоге/data/images/и внедряю его на веб-страницу, которая показана на JavaFX WebView.JavaFX 2.2 сгенерированное изображение не показано после создания jar-файла

После генерации штрих-кода я embend его на веб-страницу, используя следующий JavaScript-код:

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

Я использую абсолютный путь C: \ путь \ к \ Java-программы \ Data \ myimage.png и создайте из него URL-адрес файла. Использование этого в Eclipse работает без проблем. Но когда я создаю свой проект и запускаю его из своего jar-файла, изображение не отображается. Но проблема не в том, что путь неверен или что генерация картинки не работает, так что есть какая-то «не найденная» ошибка. Место, где должно быть изображение, просто белое с легкой рамкой.

И вот самая странная часть: если вы щелкните правой кнопкой мыши по изображению и выберите «Открыть в новом окне», изображение будет показано!

Есть ли у кого-то идеи об этом?

спасибо, что заблаговременно!

ответ

0

Я понимаю, что WebView не позволяет загружать страницу с одним файлом доступа к протоколу с использованием другого. Это имеет смысл, когда вы загружаете через http: // и запрещаете файл: //. Здесь вы загружаете файл jar: file: ..., и веб-просмотр позволит вам получить доступ к jar: file: ... resources (я просто пытался, я могу получить доступ к изображению из другого файла jar из той же банки файл, но не снаружи!).

Это звучит очень похоже на ошибку.

Обходное решение, упомянутое here, заключается в использовании URI (данные): «URI (т. Е. Кодирование изображения непосредственно в файле HTML).

Смежные вопросы