2016-12-29 5 views
0

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

«jar: file:/D: /work/dev/target/first.jar! /BOOT-INF/lib/second.jar!/A/b/c/Data.class»

Я попытался

InputStream i = new URL(str).openStream(); 

Но это не работает (FileNotFoundException). Я не хочу использовать API-интерфейс Spring-Boot. Поскольку этот URL выглядит довольно стандартным, я надеюсь, что должен быть способ добиться этого.

+0

во время выполнения, из которого вы пытаетесь загрузить Ressource? У вас создается впечатление, что вы хотите получить доступ к нему извне к весеннему ботинку. – davidxxx

+0

Спасибо за комментарий. Я хотел достичь этого изнутри первого. Это время выполнения. У меня также был доступ к вышеупомянутому URL. Как бы то ни было, getResourceAsStream выполняет эту работу. – Icarus3

ответ

1

Есть ли «second.jar» в пути к классам?

Если да, то используйте Classloader.getResourceAsStream()

Например:

Thread.currentThread().getContextClassLoader().getResourceAsStream("a/b/c/Data.class") 

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

  • Нет связанных вопросов^_^