git не имеет к этому никакого отношения.Вы не предоставили достаточно подробностей, чтобы быть уверенными в том, что происходит, но на ум приходят 2 очевидные проблемы:
[1] getResourceAsStream
ищет именованный файл там же, где java ищет файлы классов: Путь к классамВы запускаете этот код либо из редактора, либо с java
в командной строке (в этом случае вы запускаете файл jar, и инструмент сборки добавляет запись Class-Path к этому jar, если вы используете -jar
, или нет, в этом случае вы указываете classpath в командной строке), или с помощью инструмента сборки (в этом случае он будет указывать classpath): icon_128.png должен быть вкорень одной из записей на пути к классам, и теперь это не так.Исправление заключается в том, чтобы исправить это.Maven, например, копирует все ресурсы, найденные в / src / main / resources, в любые jar-файлы, которые он создает.Ваш icon_128.png должен быть там.
[2] Это неправильный способ сделать это.Правильный путь - ClassThisCodeIsIn.class.getResourceAsStream("/icon_128.png")
(примечание: начальная косая черта; это важно).В вашей версии есть несколько необычных случаев сбоя, которые эта версия пропускает.Эта версия будет специально искать в пути к классам, который создал ваш файл класса, и не может NPE;ваша версия будет давать сбой или генерировать исключения NullPointerExceptions в различных случаях.
NB. При клонировании и повторной сборке каталоги 'build' были фактически стерты, поскольку вы не проверяете их в системе контроля версий.Вот почему это работало раньше, а сейчас нет.мерзавец не виноват;Вы или ваша IDE скопировали icon_128.png в каталог сборки, и этот шаг нужно повторять каждый раз, когда вы клонируете свое git-репо.Инструмент сборки автоматизирует этот шаг и гарантирует, что вы можете просто сделать новую проверку из системы контроля версий, а затем вызвать инструмент сборки, и все будет хорошо после его завершения.