Лучший способ развернуть приложение JavaFX с большим количеством изображений - PullRequest
0 голосов
/ 14 мая 2019

Я довольно новичок в Java. Я написал приложение, которое в основном имеет сетку кнопок 50х50, каждая кнопка открывает определенное изображение, связанное с этой кнопкой. Изображения хранятся в моей файловой системе.

Приложение отлично работает в Netbeans, каждая кнопка открывает правильное изображение.

Теперь я хотел бы экспортировать приложение, чтобы иметь возможность поделиться им с интересующимися людьми - однако я не уверен, каков наилучший способ сделать это. Я гуглил это несколько дней, но не нашел ничего, что действительно отвечало бы на мой вопрос.

Что бы я предпочел, так это: пользователь устанавливает / распаковывает / независимо от приложения, и в результате остается папка со всеми файлами изображений (довольно много из них и размером около 1 ГБ) и исполняемым файлом желательно .exe для запуска программы.

Каков наилучший способ достичь чего-то подобного?

Сначала я думал о включении всех файлов изображений в работающий JAR. Проблема с этим подходом состоит в том, что мне пришлось бы переписать мой код, так как сейчас мой код использует java.io.File для получения изображений, и, насколько мне известно, это не работает внутри JAR. Также я бы предпочел .exe вместо JAR.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 14 мая 2019

как сейчас мой код использует java.io.File для получения изображений

Вы говорите, что используете java.io.File для получения списка доступных изображений или что вы используете его для чтения изображений?

Если вам нужен список изображений или ресурсов внутри фляги, взгляните на «Как вывести список файлов внутри файла JAR?»

Чтобы прочитать изображение из банки с помощью JavaFX, вам просто нужно получить URL-адрес изображения:

import javafx.scene.image.Image;

URL url = getClass().getResource("/path/inside/jar/myimage.png");
Image image = new Image(url.toExternalForm(), true);

Что касается лучшего способа развертывания этого приложения ... Я бы сказал, что приложение на 1 ГБ - это чудовище. Не могли бы вы разместить изображения на веб-сервере и заставить приложение лениво извлекать изображения по мере необходимости?

...