Java - class.getResource возвращает ноль - PullRequest
45 голосов
/ 29 ноября 2010

Я использую следующее, чтобы получить URL этого конкретного файла, но он возвращает ноль.У кого-нибудь есть какие-либо предложения относительно проблемы или альтернативный способ сделать это?

URL url = ExchangeInterceptor.class.getResource("GeoIP.dat");

Ответы [ 15 ]

1 голос
/ 29 ноября 2010

Куда вы положили этот GeoIP.dat? В том же пакете, что и ExchangeInterceptor, или в «корневом» пакете. Если в том же пакете ваш код в порядке, если в корне - добавьте префикс «/».

Может быть, вы используете M2Eclipse? Если настроено неправильно, это также может привести к таким проблемам. Другая причина таких проблем может быть: неправильно настроенные загрузчики классов, неправильно настроенные OSGi, ...

0 голосов
/ 15 марта 2019

Это мой пример решения.Работа для меня.

Структура проекта:

•   Source Packages
   •    game
       •    Game.java
   •    game.images
       •    tas_right.png

В игровом классе:

URL path=this.getClass().getClassLoader().getResource("images/tas_right.png")
0 голосов
/ 15 января 2019

Вместо того, чтобы файл ресурсов находился в той же папке, что и исходные файлы, создайте папку resources, параллельную папке java.

До:

  • ЦСИ
    • основной
      • Java
        • MyClass.java
        • file.bin
        • file.txt

После того, как:

  • ЦСИ
    • основной
      • Java
        • MyClass.java
      • ресурсы
        • file.bin
        • file.txt
0 голосов
/ 24 марта 2014

В случае затмение .

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

Убедитесь, что вы правильно настроили среду выполнения.

Preferences -> Java -> Installed JREs -> use "jdk..." as compatible JRE 
0 голосов
/ 24 апреля 2012

Во-первых, вам нужно убедиться, что вы обращаетесь к нужному файлу по правильному пути. Вы можете проверить это с помощью getClass (). GetResource ("GeoIP.dat"). GetAbsolutePath ().

Во-вторых, спецификатор пути чувствителен к регистру, поэтому убедитесь, что ваш файл не называется "geoIP.dat" или "GeoIP.DAT".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...