После некоторого времени, потраченного на эту тему, я нашел несколько сообщений, в которых упоминается jlink.
Я новичок в упаковке приложений Java/JavaFX, поэтому попробовал.
В настоящее время я могу, по крайней мере, запустить средство запуска для пакет.
Но сразу после запуска приложения выдается исключение NullPointerException:
Невозможно вызвать «Object.toString()», поскольку возвращаемое значение «java.lang .Class.getResource(String)" имеет значение null.
Для стилизации компонентов моего представления я создал несколько файлов .css и поместил их в каталог /style. Этот каталог я поместил в соответствии с примером приложения JavaFx внутри каталога /resources, созданного Maven. Аналогичным образом я поступил со своими звуковыми файлами и файлами изображений.
Здесь вы можете увидеть фрагмент моей структуры каталогов.
Код: Выделить всё
|
|--src/main
| |
| |-- java
| | | ...
| |
| |-- resources
| |
| |-- img
| | | ...
| |
| |-- style
| | | ...
| |
| |-- sound
| | ...
|
|-- target
|
|-- classes
| | ...
| |
| |-- img
| | | ...
| |
| |-- style
| | | ...
| |
| |-- sound
| | | ...
|
|-- ...
|
|-- app
|
|-- bin
|-- ...
Это был мой первый подход. Он отлично работает при запуске из VSCode.
Код: Выделить всё
public static final String PATH_TO_STYLESHEET = App.class.getResource("/style").toString();
public static final String PATH_TO_IMG = App.class.getResource("/img").toString();
public static final String PATH_TO_SOUNDS = App.class.getResource("/sounds").toString();
Вот мой pom.xml:
Код: Выделить всё
4.0.0
org.openjfx
App
0.0.1-SNAPSHOT
UTF-8
19
19
0.0.8
org.openjfx
javafx-controls
${javafx.version}
org.openjfx
javafx-media
${javafx.version}
org.openjfx
javafx-fxml
${javafx.version}
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
${maven.compiler.release}
org.openjfx
javafx-maven-plugin
${javafx.maven.plugin.version}
${maven.compiler.release}
App
launcher
com.test.App
src/main/resources
Код: Выделить всё
mvn javafx:jlink -f pom.xmlЕсть ли возможность скопировать ресурсы в определенное место?
Подробнее здесь: https://stackoverflow.com/questions/749 ... -jlink-ing
Мобильная версия