2016-06-15 2 views
1

Я делаю установщик для своего приложения, используя install4j. Раньше я использовал install4j-5 и теперь использовал install4j 6.0.1.install4j6: class.getClassLoader(). GetResourceAsStream (имя_файла) возвращает Null

Ниже проблемы с install4j 6.0.1 & Прекрасно работает с install4j5

Я звоню это из статического метода

Класс: Util.java resourcePkgPath- "SysConfig.conf" Файл в другом пакете

public static InputStream getResourceAsStream(String resourcePkgPath) { return Util.class.getClassLoader().getResourceAsStream(resourcePkgPath); }

Когда я запускаю приложение (т. от установщика), то он дает мне NullPointerException, но когда я запускаю одно и то же приложение из командной строки, тогда он работает отлично. Также он успешно запускается из Eclipse.

ответ

0

Если вы добавите корневой каталог в путь к классу запуска, файлы в нем могут быть загружены в качестве ресурса.

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

Если и ваша пусковая установка, и каталог «com» ​​находятся непосредственно в каталоге установки, добавьте каталог «.». (без кавычек) к конфигурации пути вашего пускового устройства.

+0

Спасибо за ответ ..... Я пробовал, но все же он не работает. 'inputStream = getClass(). getClassLoader(). getResourceAsStream (" com/mmi/config/SysConfig.conf ");' Правильно ли этот путь к файлу? – Mrunal

+0

выше код работает только тогда, когда этот файл «SysConfig.conf» упакован в jar (например, config.jar), но в нашем приложении мы не хотим, чтобы он был в банке, так как он настраиваемый файл, поэтому он должен отсутствовать в папка "com/mmi/config/.." Так есть ли решение для этого? – Mrunal

+0

Затем родительский каталог папки «com» ​​должен быть добавлен в конфигурацию пути класса. Я неправильно понял ваш вопрос, отредактировал бы его. –

Смежные вопросы