Как получить путь к ресурсам после jlink-инга?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить путь к ресурсам после jlink-инга?

Сообщение Anonymous »

Я пытаюсь создать исполняемый файл своего JavaFx-приложения, используя Maven и код Visual Studio.
После некоторого времени, потраченного на эту тему, я нашел несколько сообщений, в которых упоминается 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();
Но после запуска jlink мое приложение аварийно завершает работу, показывая упомянутое ранее исключение NullPointerException.
Вот мой 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
Есть ли у кого-нибудь идеи, как я могу получить путь к моим таблицам стилей, изображениям и звукам после запуска jlink? Путь абсолютно достаточен. Сам файл мне не нужен.
Есть ли возможность скопировать ресурсы в определенное место?

Подробнее здесь: https://stackoverflow.com/questions/749 ... -jlink-ing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»