У меня возникли проблемы с доступом к файлу в моем Jar в Windows. У меня нет этой проблемы, когда я запускаю ее в Unix. Я создал банку как на Windows & Unix, и это не имеет никакого значения. В любом случае это не работает в Windows.Доступ к файлу из jar в Windows
Я запустил команду jar -tf на моей банке, а класс, из которого я запущен, находится в: a/b/c/d/ClassOne.class. Класс Я ищу находится в моем базовом каталоге кувшина: ClassTwo.class
Мой код в этом ClassOne выглядит следующим образом:
String path = File.separator + "myYAML.yml";
InputStream in = MetricCollector.class.getResourceAsStream(path);
InputStreamReader isr = new InputStreamReader(in);
BufferedReader input = new BufferedReader(isr);
Мой код изломов на последней строке показано метании NullPointerException, которое я могу только верю, означает, что он не может найти путь, который я ему дал. Однако этот точный код отлично работает на моем отладчике и в Unix, когда я запускаю банку.
Я также протестировали следующие пути:
"myYAML.yml"
File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + "myYAML.yml"
".." + File.seperator + ".." + File.seperator + ".." + File.seperator + ".." + "myYAML.yml"
все безрезультатно.
Я использовал следующие сообщения о переполнении стека, чтобы получить насколько я могу, но они, кажется, не имеют ответа для меня: How to reference a resource file correctly for JAR and Debugging?, Accessing resources within a JAR file и Reading file from within JAR not working on windows
Любая дополнительная помощь, я бы очень благодарен , Заранее спасибо.
Чтобы расширить немного больше: при работе с 'класса File' вы можете * всегда * используйте'/'в Java - даже на Windows –
Это сработало отлично. Спасибо за ответ и за подробное объяснение. –
@Cameron Добро пожаловать. –