powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Ресурсы приложения
14 сообщений из 14, страница 1 из 1
Ресурсы приложения
    #40041113
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть приложение JavaFx со стандартной структурой. Без module-info запускается без проблем, а с данным файлом не видит ресурсов(fxml, png). Почему?
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041138
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <encoding>${encoding}</encoding>
                            <outputDirectory>${modules.dir}/${module.name}</outputDirectory>
                            <resources>
                                <resource>
                                    <filtering>true</filtering>
                                    <directory>${basedir}/src/main/resources</directory>
                                    <include>**/*</include>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041167
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Eliseev, и что указать в getResources ?
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041212
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорёк2
Dmitry Eliseev, и что указать в getResources ?


то что и было.
Обычно у меня структура:
Код: plaintext
1.
2.
3.
4.
5.
src/
    main/
         resources/
                 fxml/
                      some.fxml

и в коде:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
        try (InputStream inputStream = getClass().getResourceAsStream("/fxml/some.fxml")) {
            Parent parent = FXMLLoader.load(inputStream);
            stage.setScene(new Scene(parent));
            stage.setTitle("title");
            stage.show();
        } catch (IOException ioException) {
            logger.error("Unable to load Library scene", ioException);
        }
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041252
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Eliseev, вот это и не работает. Структура такая как у вас.
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041266
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорёк2
Dmitry Eliseev, вот это и не работает. Структура такая как у вас.

Я к сожалению не телепат.
Можете подробнее написать, что именно не работает. Какой Exception он бросает ?
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041425
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Eliseev,
Пишу в Idea
ресурс в
src/main/resources/ui/main.fxml
Код в
src/main/java/Pack1/Main.java

Код: java
1.
Parent root=loader.load( getClass().getResource("/ui/main.fxml"));



Caused by: java.lang.NullPointerException: Location is required.

В Idea не запускается при наличии module-info. Jar запускается при любом раскладе.
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041427
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Module-info

Код: java
1.
2.
3.
4.
5.
6.
module Project.main {
    requires javafx.graphics;
    requires javafx.fxml;
    exports Pack1;

}
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041808
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуте прочитать InputStream и убедиться что файл загрузился в поток
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    @Override
    public void start(Stage stage) throws IOException {
        var fxmlLoader = new FXMLLoader();
        try (InputStream inputStream = getClass().getResourceAsStream("/ui/main.fxml")) {
            Parent root = fxmlLoader.load(inputStream);
            scene = new Scene(root, 640, 480);
            stage.setScene(scene);
            stage.show();
        }
    }



В IDE нужно добавить SDK для OpenJFX или запускать через плагин
Код: xml
1.
2.
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>



mvn javafx:run
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041896
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот шаблонный проект, в котором всё работает https://gitlab.com/Madzi/mango
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40041927
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Eliseev, спасибо что уделяете внимание. У меня проект Gradle
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
plugins {
    id 'java'
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.9'
    id 'org.beryx.jlink' version '2.23.3'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

mainClassName = "Pack1.Main"

application{
    mainModule="Project.main"
}


javafx {
    sdk='E:/Downloads/javafx-sdk-15.0.1'
    modules = [ 'javafx.controls', 'javafx.fxml' ]


}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    implementation fileTree(dir: 'libs', include: ['*.jar'])



}
jlink {
    launcher {
        name = 'ProjectRun'
    }
}


jar {
    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}



И через InputStream тоже Caused by: java.lang.NullPointerException: inputStream is null.
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40042131
Dmitry Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полагаю что дело в структуре каталогов.
Когда вы указываете "/ui/main.fxml" то первый слеш означает корневой каталог. В моём случае это "src/main/resources" как Gradle строит структуру я не знаю.
Могу предположить что она чем-то отличается от Maven.
В таком случае можете попробовать "поискать" ваши ресурсы например в "src/main/resources/ui/main.fxml"
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40042370
maxkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорёк2,

Ну так там (в Idea) баг :).
Может быть, есть workaround , я не проверял.
...
Рейтинг: 0 / 0
Ресурсы приложения
    #40043714
Фотография Игорёк2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем такая фигня. если кому надо. Если файл module-info находится в папке модуля (на одном уровне с папкой java) то javac собирает модуль и приложение запускается в Idea и видит все ресурсы. Но почему то сама Idea не дает создавать этот файл на этом уровне, только внутри папки java. Приходится вручную переносить на уровень выше.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ресурсы приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]