Так что у меня возникла проблема с загрузкой файла при запуске моей программы из файла jar. Я знаю, что вопросы, очень похожие на это существуют, но я не могу найти ни одного, что работает для меня или делать то, что мне нужно. Я хотел бы загрузить файл объект из папки в моем банке, но когда я делаю, я получаю следующее сообщение об ошибке:URI не является иерархическим при загрузке файла из .jar
Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(Unknown Source)
at bbsource.BouncyBallV5.loadLevels(BouncyBallV5.java:370)
at bbsource.BouncyBallV5.<init>(BouncyBallV5.java:243)
at BBDriver.main(BBDriver.java:18)
Line 370 выглядит следующим образом
initSource = new File(getClass().getResource("/resources/levels").toURI());
У меня нет никаких проблем с эта строка при запуске из Eclipse, но я знаю, что в файлах jar действуют разные вещи. Иерархия папки:
- ЦСИ
- Ресурсы
- уровни
- tier_one
- Level1.cbbl
- Level2.cbbl
- tier_two
- Level1.cbbl
- tier_one
- уровни
- Ресурсы
уровней является каталогом, он не позволит мне доступ, и я не уверен, как заставить его работать. Я видел предложения, такие как использование InputStream
, но я не уверен, как его использовать и по-прежнему рассматриваю его как файл, из которого я могу читать объекты.
Любая помощь будет оценена по достоинству.
И я использую его как каталог для доступа к его подкаталоги и в конечном итоге это файлы, но мне нужна структура, подобная каталогу, для целей индексирования. И я до сих пор не знаю, как я буду использовать 'InputStream' для этого. Был бы код на том, как я использую 'initSource' помощь? – Ryan
Попробуйте использовать 'initSource = new File (getClass(). GetResource ("/resources/levels "). GetFile())' – AJA
Это все еще работает в Eclipse, но я все еще получаю сообщение об ошибке при запуске в качестве jar из командной строки. Однако на этот раз ошибка является «NullPointerException». – Ryan