Ресурс не найден java

Я создаю игру Tower Defense на Java, используя библиотеки lwjgl и slick2D с инструментом сборки maven.

Я получаю исключение RuntimeException для ресурса, который не найден изображения / грязь.png. Я дважды проверил путь и все, что связано со строками кода, с которыми может быть связана ошибка, но я застрял.

Ниже представлена ​​иерархическая картина моего проекта со всеми картинками и ошибками.

Я не нашел сообщения об этой проблеме, поэтому прошу помощи.

Ресурс не найден java

Вот изображение моего вывода, где я получаю ошибку.

Ресурс не найден java

И, наконец, способы загрузки картинок здесь.

Ресурс не найден java

Это мой основной метод и класс, в котором я вызываю эти методы.

Ресурс не найден java

Вот классы maven, на всякий случай. Ресурс не найден java

Не могли бы вы вместо скриншотов разместить код?

Erik 24.04.2018 20:38

@Erik, я бы хотел, но, как вы видите, необходимо предоставить много кода, и вопрос будет выглядеть более запутанным. Если вы хотите, я могу предоставить код где-нибудь еще.

Milos 24.04.2018 20:50

Это не должно быть сложно, если вы следуете рекомендациям StackOverflow по форматированию своего сообщения. Обязательно используйте предоставленные вам инструменты для форматирования своего сообщения.

Erik 24.04.2018 20:52
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
1 010
2

Ответы 2

попробуйте распечатать текущий рабочий каталог в методе loadTexturel1 и попробуйте соответствующим образом изменить свой путь. Строка current = new java.io.File (".") .GetCanonicalPath () посмотрим, поможет ли это

Я пробовал то, что вы предложили, но это не сработает.

Milos 24.04.2018 20:24

хорошо, вы также пробовали data / pictures / вместо просто изображений?

Jigar Gajjar 25.04.2018 15:42

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

Milos 25.04.2018 16:41

Maven нужно знать, какой ресурс упаковать. В вашем случае я бы предложил обновить ваш pom.xml, чтобы добавить директиву ресурсов для Maven, чтобы включить файлы ресурсов, такие как изображение, текст и т. д.

ИЗМЕНИТЬ Обновить Добавлен каталог после определения точного местоположения файлов PNG.

<project>
    ...
    <build>
        ...
        <resources>
            <resource>
                <directory>src/main/java/pictures</directory>
                <includes>
                    <include>**/*.png</include>
                </includes>
            </resource>
        </resources>
        ...
    </build>
    ...
</project>

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

Milos 24.04.2018 20:34

Хороший скриншот. Я бы предпочел текстовый, но это нормально. Я заметил, что на вашем pom.xml отсутствует тег ресурса. Продолжайте и добавьте тег <build> с моим предложением и пересоберите проект mvn clean install перед повторной попыткой.

Dorado 24.04.2018 20:37

Я попробовал, братан, вот ссылка на мой Google-диск, где у меня есть скриншот текущего состояния. drive.google.com/open?id=1jBdMhUN3zVnhlEWgGRwoEGoNeuz8z7Jn

Milos 24.04.2018 20:49

Я не знаком с NetBeans, потому что не уверен, называется ли исходный пакет src. Тег сборки находится в правильном месте, мы могли бы улучшить синтаксис после того, как мы исправим это. Я подозреваю, что ошибка заключается в определении пути к файлу и папке. Не могли бы вы указать полный путь к вашей папке pictures, показанной на скриншоте?

Dorado 24.04.2018 20:53

Конечно, секундочку.

Milos 24.04.2018 20:56

Я сделал то, что вы говорите, но это не работает. Вот ссылка drive.google.com/open?id=1F-L9VnZ4k3PyZ54_tx2w41BecXZUCDOv. Может быть, вам интересно будет это услышать. Я сделал новый проект, но без maven. Те же классы, что и этот проект, и когда я запускаю его, панель открывается, но весь экран на ней черный, но ошибок нет. Может быть, это могло бы чем-то помочь.

Milos 24.04.2018 21:01

Я столкнулся с той же проблемой в разных проектах Maven, когда ресурс недоступен. Со своей стороны, я обычно использую src/main/resources в качестве имени каталога и указываю расширение файла для упаковки в jar. Судя по вашему снимку экрана, я думаю, нам не хватает пары имен папок. Каков полный путь к вашему dirt.png, то есть C:\Users\someone\projects\tower_defense_game\pictures\dirt.p‌​ng?

Dorado 24.04.2018 21:08

Хорошо, это: C: \ Users \ miskecpro \ Documents \ NetBeansProjects \ TD \ src \ main \ ja‌ va \ pictures \ dirty.png

Milos 24.04.2018 21:09

Бинго. Обновите тег <directory>, используя это значение: src/main/java/pictures. Восстановите mvn clean install, и я на 99% уверен, что это сработает.

Dorado 24.04.2018 21:13

Ха, я обновил его, но он снова не работает :(. Вот ссылка drive.google.com/open?id=1tHeHedSiVhgtNwCl1L0IS-oVJDeS_Khk. Я думал разместить свой проект на диске, я сделаю это, чтобы помочь вам и мне.

Milos 24.04.2018 21:19
drive.google.com/open?id=1IO0MbheYenLXUYlG1DeaaTvxyq8Lj2Ke Ну вот. Экспериментируйте, как я.
Milos 24.04.2018 21:21

Спасибо @Milos. Я посмотрю в файл и выясню, в чем проблема. мы предоставим вам решение. плотно держаться.

Dorado 24.04.2018 21:35

Окей, братан, я нашел решение, о pom.xml ничего нет. Вся история была о пути. Так и должно быть. Сосредоточьтесь на методе loadTexture1 tex = loadTexture ("C: \\ Users \\ miskecpro \\ Documents \\ NetBeansProjec‌ ts \\ TD \\ src \\ main \\ j‌ ava \\ pictures \\" + putanja + ". png "," PNG ");

Milos 24.04.2018 22:28

Но теперь я почти уверен, что это будет работать только на моем компьютере, потому что этот путь не одинаков на всех компьютерах, верно?

Milos 24.04.2018 22:30

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

Milos 24.04.2018 22:40

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

Dorado 24.04.2018 22:40

Ты знаешь, как это будет выглядеть?

Milos 24.04.2018 22:41

Позвольте нам продолжить обсуждение в чате.

Dorado 24.04.2018 22:42

Другие вопросы по теме