Я создаю игру Tower Defense на Java, используя библиотеки lwjgl и slick2D с инструментом сборки maven.
Я получаю исключение RuntimeException для ресурса, который не найден изображения / грязь.png. Я дважды проверил путь и все, что связано со строками кода, с которыми может быть связана ошибка, но я застрял.
Ниже представлена иерархическая картина моего проекта со всеми картинками и ошибками.
Я не нашел сообщения об этой проблеме, поэтому прошу помощи.
Вот изображение моего вывода, где я получаю ошибку.
И, наконец, способы загрузки картинок здесь.
Это мой основной метод и класс, в котором я вызываю эти методы.
@Erik, я бы хотел, но, как вы видите, необходимо предоставить много кода, и вопрос будет выглядеть более запутанным. Если вы хотите, я могу предоставить код где-нибудь еще.
Это не должно быть сложно, если вы следуете рекомендациям StackOverflow по форматированию своего сообщения. Обязательно используйте предоставленные вам инструменты для форматирования своего сообщения.




попробуйте распечатать текущий рабочий каталог в методе loadTexturel1 и попробуйте соответствующим образом изменить свой путь. Строка current = new java.io.File (".") .GetCanonicalPath () посмотрим, поможет ли это
Я пробовал то, что вы предложили, но это не сработает.
хорошо, вы также пробовали data / pictures / вместо просто изображений?
Я нашел решение, правильный путь - это просто имя изображения и расширение, но ничего перед именем или именем пакета
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, потому что я не знаю, где именно указать мой пакет изображений.
Хороший скриншот. Я бы предпочел текстовый, но это нормально. Я заметил, что на вашем pom.xml отсутствует тег ресурса. Продолжайте и добавьте тег <build> с моим предложением и пересоберите проект mvn clean install перед повторной попыткой.
Я попробовал, братан, вот ссылка на мой Google-диск, где у меня есть скриншот текущего состояния. drive.google.com/open?id=1jBdMhUN3zVnhlEWgGRwoEGoNeuz8z7Jn
Я не знаком с NetBeans, потому что не уверен, называется ли исходный пакет src. Тег сборки находится в правильном месте, мы могли бы улучшить синтаксис после того, как мы исправим это. Я подозреваю, что ошибка заключается в определении пути к файлу и папке. Не могли бы вы указать полный путь к вашей папке pictures, показанной на скриншоте?
Конечно, секундочку.
Я сделал то, что вы говорите, но это не работает. Вот ссылка drive.google.com/open?id=1F-L9VnZ4k3PyZ54_tx2w41BecXZUCDOv. Может быть, вам интересно будет это услышать. Я сделал новый проект, но без maven. Те же классы, что и этот проект, и когда я запускаю его, панель открывается, но весь экран на ней черный, но ошибок нет. Может быть, это могло бы чем-то помочь.
Я столкнулся с той же проблемой в разных проектах Maven, когда ресурс недоступен. Со своей стороны, я обычно использую src/main/resources в качестве имени каталога и указываю расширение файла для упаковки в jar. Судя по вашему снимку экрана, я думаю, нам не хватает пары имен папок. Каков полный путь к вашему dirt.png, то есть C:\Users\someone\projects\tower_defense_game\pictures\dirt.png?
Хорошо, это: C: \ Users \ miskecpro \ Documents \ NetBeansProjects \ TD \ src \ main \ ja va \ pictures \ dirty.png
Бинго. Обновите тег <directory>, используя это значение: src/main/java/pictures. Восстановите mvn clean install, и я на 99% уверен, что это сработает.
Ха, я обновил его, но он снова не работает :(. Вот ссылка drive.google.com/open?id=1tHeHedSiVhgtNwCl1L0IS-oVJDeS_Khk. Я думал разместить свой проект на диске, я сделаю это, чтобы помочь вам и мне.
Спасибо @Milos. Я посмотрю в файл и выясню, в чем проблема. мы предоставим вам решение. плотно держаться.
Окей, братан, я нашел решение, о pom.xml ничего нет. Вся история была о пути. Так и должно быть. Сосредоточьтесь на методе loadTexture1 tex = loadTexture ("C: \\ Users \\ miskecpro \\ Documents \\ NetBeansProjec ts \\ TD \\ src \\ main \\ j ava \\ pictures \\" + putanja + ". png "," PNG ");
Но теперь я почти уверен, что это будет работать только на моем компьютере, потому что этот путь не одинаков на всех компьютерах, верно?
Как бы то ни было, вы потратили много времени, пытаясь решить мои проблемы, так что вы должны быть вознаграждены. Спасибо за все, я имею в виду, что если у вас есть решение для улучшения этого пути, не стесняйтесь делиться.
Это будет работать только на вашем компьютере и не переносится. Я подозреваю, что проблема в пути. Рекомендуется использовать путь к файлу из корневой папки проекта. Таким образом приложение может работать на других компьютерах.
Ты знаешь, как это будет выглядеть?
Позвольте нам продолжить обсуждение в чате.
Не могли бы вы вместо скриншотов разместить код?